• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 2. Условия

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«командующий цитадели»

Вы — доблестный командующий последней цитадели на границе земель. Разведчики докладывают о передвижении вражеских сил. Ваша задача — не поддаваясь панике, но и не проявляя беспечности, оценить уровень угрозы и принять решение о подготовке к возможной атаке. Решение должно быть основано на трёх ключевых факторах: предполагаемая численность врага, оценка уровня его вооружения и текущие погодные условия

Правила принятия решения:
Тревога объявляется и подготовка к атаке начинается, если выполняется хотя бы одно из двух условий:

1. Численность вражеского войска превышает 500 воинов, и одновременно их уровень вооружения (по шкале от 0 до 100) выше 70.

2. Погодные условия плохие (например, густой туман или ливень), что даёт врагу преимущество для внезапной атаки, вне зависимости от его численности и вооружения.

Напишите программу, которая запрашивает у вас как у командующего эти три параметра и выводит на экран чёткий приказ: готовиться к атаке или сохранять спокойствие.

Формат ввода

Численность врагов (целое число)
Уровень вооружения (целое число от 0 до 100)
Погодные условия (строка: "хорошо" или "плохо")

Формат Вывода

Решение командующего (строка)

Пример

Ввод

300
50
плохо

Вывод

Готовиться к атаке!

Подсказка

Условия в Питоне

Условия в Python позволяют программе принимать решения на основе проверки истинности логических выражений. Представьте, что ваша программа дошла до развилки на дороге: в зависимости от того, куда нужно идти, она выберет один из путей. Это и есть один из фундаментальных элементов программирования, который позволяет выполнять разные части кода в зависимости от различных обстоятельств. В Python для создания таких "развилок" используются операторы if, elif и else.

Синтаксис

Условия в Python определяются с помощью ключевых слов if, elif и else. Эти операторы позволяют выполнять блоки кода в зависимости от того, истинно или ложно проверяемое выражение.

ВАЖНО! После самого условия (if условие: или elif условие:) и после else всегда ставится двоеточие (:).

if условие:
    # блок кода, который выполнится, если условие истинно
else:
    # другой блок кода, который выполнится, если условие ложно

Отступы в Python — это не просто красота, это часть синтаксиса! В отличие от многих других языков, где для группировки кода используются фигурные скобки {}, в Python для этого служат отступы (обычно 4 пробела). Именно отступ показывает, какие строки кода относятся к if, а какие к else. Все строки внутри одного блока должны иметь одинаковый отступ.

Полезный совет: Самая частая ошибка новичков — смешивание пробелов и символов табуляции для создания отступов. Это может привести к ошибке IndentationError. Настройте ваш редактор кода так, чтобы он автоматически заменял табуляцию на 4 пробела.

x = 10
if x > 5:
    print("x больше 5")  # Этот код находится внутри блока if, он выполнится.
    y = x - 5          # И эта строка тоже внутри блока if.
    # Вложенное условие: проверка внутри проверки
    if y < 3:
        # У этой строки отступ еще больше, она принадлежит вложенному if.
        print("y меньше 3")  
else:
    # Этот код выполнится, только если условие 'x > 5' ложно.
    print("x не больше 5") 

Основные операторы условий

  1. if: Выполняет блок кода, если его условие истинно (True). Это "главная" проверка.
  2. elif: (сокращение от "else if") Проверяет свое условие, только если все предыдущие проверки if и elif оказались ложными.
  3. else: Выполняет свой блок кода, если все без исключения предыдущие условия (if и все elif) оказались ложными. Блок else является необязательным.

Давайте рассмотрим на примерах.

x = 10
if x > 5: # Условие 10 > 5 истинно (True).
    print("x больше 5") # Этот код выполнится.

Теперь связка с else. Выполняется только один из блоков: либо if, либо else.

x = 3
if x > 5: # Условие 3 > 5 ложно (False).
    print("x больше 5") # Этот блок будет пропущен.
else:
    print("x не больше 5") # Программа перейдет сюда и выполнит этот код.

Оператор elif позволяет проверять несколько условий подряд. Блоков elif может быть сколько угодно. Как только один из них окажется истинным, вся конструкция завершится.

x = 5
if x > 5: # Условие 5 > 5 ложно (False).
    print("x больше 5")
elif x == 5: # Условие 5 == 5 истинно (True).
    print("x равно 5") # Этот блок выполнится, и проверка закончится.
else: # Сюда программа даже не заглянет, так как условие в elif уже выполнилось.
    print("x меньше 5")

Полезный совет: Порядок elif имеет значение! Python проверяет их сверху вниз. Размещайте более конкретные и строгие проверки выше, а более общие — ниже.

Операторы сравнения

Операторы сравнения используются внутри условий для сравнения двух значений. Результатом их работы всегда является логическое значение: True (истина) или False (ложь).

  • == Равно
  • != Не равно
  • > Больше
  • < Меньше
  • >= Больше или равно
  • <= Меньше или равно

Полезный совет: Не путайте оператор сравнения == с оператором присваивания =! Одна из самых распространенных ошибок. x = 5 — это "положить значение 5 в переменную x". x == 5 — это "спросить, равно ли значение в x пяти?".

x = 10
b = 17
c = 0
print(x > 9)    # True
print(b <= 17)  # True
print(c != 1)   # True
print(x < 110)  # True
print(b == 17)  # True
print(c >= -10) # True

Проверка на принадлежность диапазону (цепочки сравнений)

Если вам нужно проверить, попадает ли число в определенный диапазон, Python позволяет делать это очень изящно с помощью "цепочек сравнений".

a = 17
# Проверяем, что 'a' находится в диапазоне от 10 до 100 включительно.
print(10 <= a <= 100) # True

Это более читаемая и "питоничная" запись, чем a >= 10 and a <= 100.

# Можно строить и более сложные цепочки.
# Эта запись проверяет, что 200 > 17 И 17 < 100.
print(200 > a < 100) # True

Логические операторы: and, or, not

Часто нужно проверить не одно, а сразу несколько условий. Для этого используются логические операторы.

  • and (логическое "И"): Возвращает True, только если оба условия истинны.
  • or (логическое "ИЛИ"): Возвращает True, если хотя бы одно из условий истинно.
  • not (логическое "НЕ"): Инвертирует логическое значение (меняет True на False и наоборот).
age = 25
has_license = True

# Чтобы водить машину, нужно быть старше 18 И иметь права.
if age >= 18 and has_license == True:
    print("Можно садиться за руль")

temperature = -5
is_weekend = True

# Пойдем гулять, если на улице тепло ИЛИ сегодня выходной.
if temperature > 0 or is_weekend == True:
    print("Отличный день для прогулки!")
main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Запрашиваем у командующего три параметра для оценки угрозы

# 1. Численность вражеского войска (целое число)
enemy_count = int(input())

# 2. Уровень вооружения (целое число от 0 до 100)
weapon_level = int(input())

# 3. Погодные условия (строка: "хорошо" или "плохо")
weather = input()

# Проверяем условия для объявления тревоги согласно правилам:

# Условие 1: Численность > 500 И уровень вооружения > 70
condition1 = enemy_count > 500 and weapon_level > 70

# Условие 2: Погодные условия плохие (независимо от других факторов)
condition2 = weather.lower() == "плохо"

# Принимаем решение: если выполняется хотя бы одно из условий
if condition1 or condition2:
    print("Готовиться к атаке!")
else:
    print("Угрозы нет, можно спать спокойно.")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!