- Получать
TrueилиFalseс помощью операторов сравнения - Писать ветвящиеся программы с
if,elifиelse - Объединять условия с помощью
and,orиnot
Каждый день мы принимаем десятки решений: если идёт дождь, берём зонт; если на светофоре красный, ждём; если домашнее задание сделано, идём гулять. Программы работают так же: проверяют ситуацию и в зависимости от результата выполняют разные действия. В Python для этого есть условные операторы.
Операторы сравнения
В основе каждого решения лежит вопрос, на который можно ответить «да» или «нет». В Python такие вопросы записывают с помощью операторов сравнения, а ответ всегда логический: True (истина) или False (ложь).
| Оператор | Значение | Пример |
|---|---|---|
== | равно | 5 == 5 → True |
!= | не равно | 5 != 3 → True |
> | больше | 2 > 7 → False |
< | меньше | 2 < 7 → True |
>= | больше или равно | 7 >= 7 → True |
<= | меньше или равно | 8 <= 7 → False |
age = 14
print(age > 12)
print(age == 18)
print(age != 18)
print('Baku' == 'baku')
print(5 <= 5)▸ Ожидаемый результат
True False True False True
Оператор if
После слова if пишется условие, а в конце ставится двоеточие (:). Если условие равно True, выполняются строки под ним с отступом; если False, Python их пропускает.
temperature = 32
if temperature > 30:
print('It is hot today!')
print('Drink more water.')
print('Have a nice day.')▸ Ожидаемый результат
It is hot today! Drink more water. Have a nice day.
temperature на 20 и посмотри, как изменится результат.Пробелы в начале строки. В Python отступ показывает, какие строки образуют один блок. Обычно используют 4 пробела. Последняя строка в примере не имеет отступа, поэтому выполняется всегда, независимо от условия.
else и elif
else («иначе») указывает, что делать, если условие ложно. Например, проверим, чётное ли число, по остатку от деления на 2:
number = 7
if number % 2 == 0:
print(number, 'is even')
else:
print(number, 'is odd')▸ Ожидаемый результат
7 is odd
Когда вариантов больше двух, на помощь приходит elif (сокращение от «else if»). Python проверяет условия сверху вниз и выполняет блок первого истинного — остальные он уже не смотрит. Если ни одно не истинно, выполняется блок else.
score = 78
if score >= 90:
grade = 'Excellent'
elif score >= 75:
grade = 'Good'
elif score >= 50:
grade = 'Satisfactory'
else:
grade = 'Try again'
print(f'Score {score}: {grade}')▸ Ожидаемый результат
Score 78: Good
score >= 75.and, or, not
A and B—True, когда истинны оба условия.A or B—True, когда истинно хотя бы одно условие.not A— меняет условие на противоположное:TrueстановитсяFalseи наоборот.
age = 15
has_ticket = True
is_weekend = False
if age >= 12 and has_ticket:
print('You can watch the film.')
if is_weekend or age < 7:
print('Free entry!')
else:
print('Entry costs 5 AZN.')
if not is_weekend:
print('See you after school!')▸ Ожидаемый результат
You can watch the film. Entry costs 5 AZN. See you after school!
and в Python работает как вентиль AND. Выбери также OR и NOT и сравни их таблицы.Год високосный, если делится на 4, но годы, кратные 100, високосные, только если делятся и на 400. Напиши условие, которое проверяет, високосный ли 2024 год.
Показать решениеСкрыть решение
and: year % 4 == 0 and year % 100 != 0.Часть «или делится на 400» добавляем через
or: or year % 400 == 0.Скобки объединяют первую часть. Результат — в коде ниже.
year = 2024
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(year, 'is a leap year')
else:
print(year, 'is not a leap year')▸ Ожидаемый результат
2024 is a leap year
Посмотри на number: если число больше нуля, выведи positive, если меньше — negative, если равно нулю — zero. Используй if, elif и else. Меняй значение number, чтобы проверить каждую ветку.
number = -7
# print positive, negative or zero▸ Ожидаемый результат
negative
У Айсель score = 83 балла, и домашнее задание она сделала (homework_done = True). Сначала выведи оценку: A, если баллов не меньше 90, B — не меньше 75, C — не меньше 50, иначе F. Затем, если баллов не меньше 80 и домашнее задание сделано, выведи на отдельной строке Bonus star!.
score = 83
homework_done = True
# 1) print A, B, C or F
# 2) print Bonus star! if score >= 80 and the homework is done▸ Ожидаемый результат
B Bonus star!
Главное
- Операторы сравнения (
==,!=,<,>,<=,>=) возвращаютTrueилиFalse. - После условия
ifставится двоеточие, а его блок пишется с отступом в 4 пробела. - В цепочке
elifвыполняется блок только первого истинного условия; если ни одно не истинно —else. andтребует, чтобы были истинны оба условия,or— хотя бы одно, аnotменяет условие на противоположное.=— присваивание,==— сравнение.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.
10 != 10?