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 — читается лучше.