Условные операторы
if / elif / else
age = 18 # числовое значение
if age >= 18: # условие
print("Совершеннолетний") # вывод в консоль
elif age >= 14: # иначе если
print("Подросток") # вывод в консоль
else: # иначе
print("Ребёнок") # вывод в консоль
Логические операторы
# and — оба истинны
if age >= 18 and has_document: # условие
print("Доступ разрешён") # вывод в консоль
# or — хотя бы один истинен
if is_admin or is_owner: # условие
print("Есть права") # вывод в консоль
# not — отрицание
if not is_banned: # условие
print("Пользователь активен") # вывод в консоль
# Сравнения можно цепочкой
if 0 <= score <= 100: # условие
print("Корректный балл") # вывод в консоль
# Проверка на None / пустоту
if value is None: ... # условие
if not value: ... # 0, "", [], None, False → True
Тернарный оператор
age = 20 # числовое значение
status = "совершеннолетний" if age >= 18 else "несовершеннолетний" # строковое значение
# Вложенный тернарник (не злоупотребляйте)
category = "ребёнок" if age < 14 else "подросток" if age < 18 else "взрослый" # строковое значение
match / case (Python 3.10+)
def http_status(code):
match code: # сопоставление с образцом
case 200: # вариант сопоставления
return "OK" # возврат значения
case 201: # вариант сопоставления
return "Created" # возврат значения
case 400: # вариант сопоставления
return "Bad Request" # возврат значения
case 404: # вариант сопоставления
return "Not Found" # возврат значения
case 500: # вариант сопоставления
return "Server Error" # возврат значения
case _: # вариант сопоставления
return "Unknown" # возврат значения
# Связывание переменных
def process(point):
match point: # сопоставление с образцом
case (0, 0): # вариант сопоставления
print("Начало координат") # вывод в консоль
case (x, 0): # вариант сопоставления
print(f"На оси X: {x}") # вывод в консоль
case (0, y): # вариант сопоставления
print(f"На оси Y: {y}") # вывод в консоль
case (x, y): # вариант сопоставления
print(f"Точка: ({x}, {y})") # вывод в консоль
# С условиями (guard)
def classify(value):
match value: # сопоставление с образцом
case x if x < 0: # условие
return "Отрицательное" # возврат значения
case x if x == 0: # условие
return "Ноль" # возврат значения
case x if x > 0: # условие
return "Положительное" # возврат значения
Короткое замыкание (short-circuit)
# Python вычисляет and/or слева направо
# and: если первое False — второе не вычисляется
# or: если первое True — второе не вычисляется
# Часто используется для значений по умолчанию
name = input_name or "Гость" # присваивание