Условия в Python: шпаргалка

Ветвление и логические операторы, включая проверки на пустоту и None.

if / elif / else

score = 78
if score >= 90:
    grade = 'A'
elif score >= 70:
    grade = 'B'
else:
    grade = 'C'
# grade == 'B'

Ветки проверяются сверху вниз, выполняется первая истинная — остальные пропускаются. Веток elif может быть сколько угодно, else не обязателен.

Логика: and, or, not

age = 25
has_pass = False
age >= 18 and has_pass   # False
age >= 18 or has_pass    # True
not has_pass             # True
0 <= age <= 120          # True

and требует оба условия, or — хотя бы одно, not переворачивает значение. Двойное сравнение 0 <= age <= 120 работает без and — питоновская фишка.

in: проверка вхождения

cart = ['coffee', 'tea']
'tea' in cart           # True
'juice' not in cart     # True
'od' in 'koddo'         # True
5 in {1: 'a', 5: 'b'}   # True, checks keys

in работает со списками, строками, множествами и словарями. У словаря проверяются ключи, а не значения — для значений есть in dict.values().

Тернарное выражение

qty = 7
label = 'many' if qty >= 5 else 'few'   # 'many'
discount = 0.1 if qty >= 10 else 0      # 0

Однострочный if для выбора значения: сначала результат, потом условие. Для действий и нескольких веток бери обычный if — читается лучше.

Что дальше