Условные конструкции: 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-канале Данилы Бежина.


Упражнения для закрепления 🏋️

  1. Напишите программу, которая проверяет, является ли число чётным или нечётным
  2. Создайте калькулятор ИМТ с выводом категории (недостаток, норма, избыток)
  3. Реализуйте систему скидок: если сумма покупки > 1000 — скидка 10%, > 5000 — 15%

Попробуйте решить эти задачи разными способами: с вложенными условиями, тернарным оператором и match-case!

Скрыть рекламу навсегда

📘 VK Видео — обучение без ограничений

Все уроки доступны без VPN, без блокировок и зависаний.

Можно смотреть с телефона, планшета или компьютера — в любое время.

▶️ Смотреть на VK Видео