Учебник по информатике и математике
Темы
Алгоритмы
C++
Основы языка
Python
Условный оператор if в Python
Оглавление:
Пока программа выполняет команды строго по порядку, она умеет только считать. Условный оператор if даёт ей возможность выбирать: выполнить одну ветку, если условие верно, и другую — если нет.
Простое условие
temperature = 25
if temperature > 20:
print("Тепло")
После if идёт условие и двоеточие. Команды, которые выполняются при верном условии, записываются с отступом в четыре пробела. Отступ — не украшение, а часть синтаксиса: именно по нему Python понимает, где кончается тело условия.
Ключевая идея: Условие — это выражение, значение которого
TrueилиFalse. Если оноTrue, телоifвыполняется, еслиFalse— пропускается.
Ветка else и цепочка elif
score = int(input())
if score >= 90:
print("Отлично")
elif score >= 70:
print("Хорошо")
elif score >= 50:
print("Зачёт")
else:
print("Пересдача")
Ветки проверяются сверху вниз, выполняется первая подходящая, остальные пропускаются. else срабатывает, когда не подошла ни одна из проверок выше. Поэтому во второй ветке не нужно писать score < 90: если программа дошла до elif, первое условие уже оказалось ложным.
Операторы сравнения
| Запись | Смысл |
|---|---|
a == b |
равно |
a != b |
не равно |
a > b, a < b |
больше, меньше |
a >= b, a <= b |
не меньше, не больше |
Частая ошибка: Один знак
=— это присваивание, два==— сравнение. Записьif x = 5:вызовет синтаксическую ошибку.
Сравнивать можно и строки: "abc" == "abc" даёт True, а "abc" < "abd" — тоже True, строки сравниваются по алфавиту.
Сложные условия
Условия объединяются логическими операциями:
and— «и»: верно, когда верны оба условия;or— «или»: верно, когда верно хотя бы одно;not— «не»: меняет значение на противоположное.
age = 15
has_ticket = True
if age >= 12 and has_ticket:
print("Проходите")
if age < 6 or age > 65:
print("Бесплатный вход")
if not has_ticket:
print("Купите билет")
Проверку «число лежит в отрезке» в Python можно записать как в математике: if 10 <= x <= 20:.
Совет: Чётность числа проверяют остатком от деления:
x % 2 == 0— число чётное. Аналогичноx % 5 == 0— число делится на пять.
Вложенные условия
Внутри ветки может стоять ещё один if — с дополнительным отступом:
if x > 0:
if x % 2 == 0:
print("Положительное чётное")
else:
print("Положительное нечётное")
else:
print("Не положительное")
Если вложенность растёт, подумай, нельзя ли переписать условия цепочкой elif или объединить их через and: плоский код читается легче.
Проверь себя
В программе grade.py из статьи пользователь ввёл число 75. Что напечатает программа?
Чему равно значение выражения (5 > 3) and (2 == 3)? Ответ — True или False.
Соедини запись и её смысл.
x == 5
x равно 5
x = 5
x делится на 5
x != 5
x не равно 5
x % 5 == 0
записать 5 в x