Условные конструкции: if, elif, else в практике
Как работают условия в Python? 🤔
Условные конструкции — это "мозг" программы. Они позволяют коду принимать решения, реагировать на данные и вести себя по-разному в разных ситуациях.
Базовый синтаксис выглядит так:
if условие:
# выполнить, если условие True
elif другое_условие: # необязательно
# выполнить, если первое условие False, а это True
else: # необязательно
# выполнить, если все условия False
Простые примеры для понимания
Проверка возраста 🎂
age = 18
if age >= 18:
print("Добро пожаловать в наш бар!")
else:
print("Извините, вход только с 18 лет")
🔹 Как это работает:
- age >= 18 — условие (вернёт True или False)
- Если True — выполняется блок после if
- Если False — выполняется блок после else
Множественные условия с elif
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B" # сработает этот блок
elif score >= 70:
grade = "C"
else:
grade = "D"
print(f"Ваша оценка: {grade}")
🔹 Важно: Python проверяет условия сверху вниз и выполняет первый подходящий блок. Остальные условия игнорируются!
Продвинутые приёмы
Вложенные условия 🏗️
temperature = 25
is_raining = False
if temperature > 30:
if is_raining:
print("Жарко и дождливо — странная погода!")
else:
print("Включите кондиционер")
else:
print("Температура комфортная")
⚠️ Осторожно: Слишком много вложенных if делают код сложным. Если у вас больше 2-3 уровней вложенности — возможно, нужно переписать логику.
Короткие условия в одну строку
age = 20
status = "Взрослый" if age >= 18 else "Ребёнок"
print(status) # Выведет: Взрослый
Этот синтаксис называется тернарный оператор — удобно для простых условий!
Практические примеры из реальной жизни
Проверка пароля 🔒
correct_password = "python123"
user_input = input("Введите пароль: ")
if user_input == correct_password:
print("Доступ разрешён!")
else:
print("Неверный пароль. Попробуйте снова.")
Определение времени суток 🌇
from datetime import datetime
hour = datetime.now().hour
if 5 <= hour < 12:
print("Доброе утро!")
elif 12 <= hour < 18:
print("Добрый день!")
elif 18 <= hour < 23:
print("Добрый вечер!")
else:
print("Доброй ночи!")
Частые ошибки и как их избежать
1. Забыли двоеточие:
if x > 10 # ОШИБКА! Нужно ":"
2. Путаница с отступами:
if condition:
print("Это не сработает!") # Должен быть отступ
3. Использование = вместо ==:
if password = "123": # ОШИБКА! Это присваивание
4. Избыточные условия:
if is_ready == True: # Лучше просто if is_ready:
Когда использовать match-case вместо if-elif?
В Python 3.10+ появился мощный аналог — match (как switch в других языках):
http_status = 404
match http_status:
case 200:
print("OK")
case 404:
print("Not Found")
case _: # аналог else
print("Unknown status")
🔹 Совет от Данилы Бежина: match-case отлично подходит для множества явных значений. Для сложных условий лучше if-elif-else.
Подробнее о продвинутых возможностях Python — на YouTube-канале Данилы Бежина.
Упражнения для закрепления 🏋️
- Напишите программу, которая проверяет, является ли число чётным или нечётным
- Создайте калькулятор ИМТ с выводом категории (недостаток, норма, избыток)
- Реализуйте систему скидок: если сумма покупки > 1000 — скидка 10%, > 5000 — 15%
Попробуйте решить эти задачи разными способами: с вложенными условиями, тернарным оператором и match-case!