Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26

Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26

Deprecated: Creation of dynamic property Yoast\Presenters\CommonArticlePresenter::$metaPropertyType is deprecated in /var/www/html/web/app/themes/tutortop-blog/Yoast/Presenters/CommonArticlePresenter.php on line 26
Условные операторы Python: if, elif, else, match-case с примерами
25.06.2025
142
5.5 мин

Условный оператор в Python: полное руководство от основ до продвинутых техник

Что такое условный оператор в Python

Условный оператор — это конструкция, которая позволяет программе выполнять разные действия в зависимости от выполнения определённых условий. По данным Stack Overflow Developer Survey 2024, 87% разработчиков считают понимание условной логики критически важным навыком для программиста. Если вы интересуетесь разработкой и хотите изучить инструменты для работы в Python более детально, обратите внимание на онлайн-курсы по программированию на Python.

Представьте, что вы создаёте программу для банка. Клиент хочет снять деньги с карты — программа должна проверить баланс и либо выдать средства, либо отказать в операции. Именно для таких задач нужны условные операторы.

Базовый синтаксис оператора if

Простейшая форма условного оператора выглядит так:

if условие:
# код, который выполнится, если условие истинно
действие

Пример из реальной практики:

age = 18
if age >= 18:
print("Вы можете голосовать") # Выведет: Вы можете голосовать

Оператор if-else: выбор между двумя путями

Конструкция if-else позволяет выполнить одно действие, если условие истинно, и другое — если ложно:

balance = 1500
withdraw_amount = 2000

if balance >= withdraw_amount:
print("Операция выполнена успешно")
balance -= withdraw_amount
else:
print("Недостаточно средств на счёте")
print(f"Доступно: {balance} рублей")

Тернарный оператор: краткая запись

Python поддерживает сокращённую запись условного оператора:

status = "взрослый" if age >= 18 else "несовершеннолетний"
print(f"Статус: {status}")
Человек работает за компьютером

Оператор if-elif-else: множественный выбор

Когда нужно проверить несколько условий последовательно, используется конструкция if-elif-else:

score = 85

if score >= 90:
grade = "Отлично"
elif score >= 80:
grade = "Хорошо"
elif score >= 70:
grade = "Удовлетворительно"
elif score >= 60:
grade = "Зачёт"
else:
grade = "Незачёт"

print(f"Ваша оценка: {grade}")

Логические операторы в условиях

Python предоставляет три основных логических оператора для объединения условий:

ОператорОписаниеПримерРезультат
andИстина, если оба условия истинныage >= 18 and has_licenseTrue, если возраст ≥18 И есть права
orИстина, если хотя бы одно условие истинноis_weekend or is_holidayTrue, если выходной ИЛИ праздник
notИнвертирует результат условияnot is_busyTrue, если НЕ занят
inПроверяет принадлежность элементаname in users_listTrue, если имя есть в списке

Практический пример с логическими операторами

username = "alex"
password = "secret123"
is_active = True

if username == "alex" and password == "secret123" and is_active:
    print("Добро пожаловать в систему!")
elif not is_active:
    print("Ваш аккаунт заблокирован")
else:
    print("Неверные учётные данные")

Сравнение строк и проверка вхождения

Python предоставляет мощные инструменты для работы со строками в условиях:

Проверка вхождения с in

email = "user@example.com"
forbidden_domains = ["spam.com", "fake.org", "temp.net"]

if "@" not in email:
    print("Некорректный email")
elif any(domain in email for domain in forbidden_domains):
    print("Email с запрещённого домена")
else:
    print("Email принят")

Match-case: современная альтернатива множественным if-elif

С Python 3.10 появился оператор match-case, который элегантно заменяет длинные цепочки if-elif:

def process_http_status(status_code):
match status_code:
case 200:
return "Успешный запрос"
case 404:
return "Страница не найдена"
case 500:
return "Внутренняя ошибка сервера"
case status if 400 <= status < 500:
return "Ошибка клиента"
case _:
return "Неизвестный статус"

print(process_http_status(403)) # Ошибка клиента

Вложенные условия и сложная логика

Реальные задачи часто требуют сложной логики с вложенными условиями:

def calculate_discount(customer_type, order_amount, is_first_order):
discount = 0

if customer_type == "premium":
if order_amount >= 5000:
discount = 0.15
elif order_amount >= 2000:
discount = 0.10
else:
discount = 0.05
elif customer_type == "regular":
if is_first_order:
discount = 0.10
elif order_amount >= 3000:
discount = 0.08
else:
discount = 0.03
else: # новый клиент
discount = 0.05 if is_first_order else 0.02

return discount

# Использование
customer_discount = calculate_discount("premium", 4500, False)
print(f"Скидка составляет: {customer_discount:.1%}") # 10.0%

Частые вопросы

Можно ли использовать условный оператор без else?

Да, else не является обязательным. Если условие в if не выполняется, программа просто продолжит выполнение со следующей строки после блока if.

Что происходит, если несколько условий в elif истинны одновременно?

Python проверяет условия последовательно сверху вниз и выполняет только первое истинное условие. Остальные условия игнорируются, даже если они тоже истинны.

Как проверить, является ли переменная пустой или None?

Используйте конструкцию if variable: для проверки на «truthiness» или if variable is None: для точной проверки на None. Для пустых строк, списков: if not variable:.

Практический план освоения условных операторов

Пошаговый план изучения:

  1. Неделя 1: Освойте базовый синтаксис if и if-else, решите 20-30 простых задач
  2. Неделя 2: Изучите if-elif-else и логические операторы, создайте калькулятор оценок
  3. Неделя 3: Практикуйте вложенные условия и работу со строками
  4. Неделя 4: Изучите match-case (Python 3.10+) и оптимизацию условий
  5. Неделя 5: Создайте комплексный проект: систему авторизации или игру

Ключевые takeaways:

  • Условные операторы — основа программной логики
  • Используйте elif вместо множественных if для связанных условий
  • Match-case упрощает сложные сценарии выбора
  • Логические операторы позволяют создавать сложные условия

Оцените статью

4.8 5 (14 оценок)
Хочу стать Python-разработчиком!
Специально для вас мы собрали отдельную подборку лучших онлайн-курсов по Python на рынке и сравнили их по цене, продолжительности и отзывам студентов.
Изучить Python