Когда if-else не хватает - используй elif! Проверяй несколько условий по порядку.
🤔 Проблема if-else
Представь: нужно проверить несколько вариантов
# ❌ Плохо - много вложенных if
score = 85
if score >= 90:
print('Отлично!')
else:
if score >= 80:
print('Хорошо!')
else:
if score >= 70:
print('Удовлетворительно')
else:
print('Плохо')
Сложно читать! Много вложенности!
✨ Решение: elif
elif = “иначе если” (else + if)
# ✅ Хорошо - читается легко
score = 85
if score >= 90:
print('Отлично!')
elif score >= 80:
print('Хорошо!')
elif score >= 70:
print('Удовлетворительно')
else:
print('Плохо')
Как работает:
1. Проверяет первое условие (score >= 90) - False
2. Проверяет второе условие (score >= 80) - True!
3. Выполняет код для второго условия
4. Останавливается (остальные не проверяет)
📐 Структура
if условие1:
# Выполнится если условие1 True
elif условие2:
# Выполнится если условие1 False, а условие2 True
elif условие3:
# Выполнится если 1 и 2 False, а условие3 True
else:
# Выполнится если все False
Важно:
- Проверяются по порядку сверху вниз
- Выполнится только ОДИН блок
- else необязателен
🎯 Примеры использования
Пример 1: Оценки
print('📝 Система оценок\\n')
points = int(input('Баллов набрано: '))
if points >= 90:
grade = 'A'
elif points >= 80:
grade = 'B'
elif points >= 70:
grade = 'C'
elif points >= 60:
grade = 'D'
else:
grade = 'F'
print(f'Твоя оценка: {grade}')
Пример 2: Калькулятор
print('🧮 Калькулятор\\n')
a = float(input('Первое число: '))
b = float(input('Второе число: '))
operation = input('Операция (+, -, *, /): ')
if operation == '+':
result = a + b
elif operation == '-':
result = a - b
elif operation == '*':
result = a * b
elif operation == '/':
if b != 0:
result = a / b
else:
result = 'Ошибка: деление на 0'
else:
result = 'Неизвестная операция'
print(f'\\nРезультат: {result}')
Пример 3: Определение времени суток
hour = int(input('Текущий час (0-23): '))
if hour < 6:
print('🌙 Ночь - спать пора!')
elif hour < 12:
print('🌅 Утро - доброе утро!')
elif hour < 18:
print('☀️ День - добрый день!')
elif hour < 22:
print('🌆 Вечер - добрый вечер!')
else:
print('🌙 Поздняя ночь - пора спать!')
Пример 4: BMI с подробностями
print('🧮 Калькулятор BMI\\n')
weight = float(input('Вес (кг): '))
height = float(input('Рост (м): '))
bmi = weight / (height ** 2)
print(f'\\nТвой BMI: {bmi:.1f}')
if bmi < 16:
print('⚠️ Выраженный дефицит массы')
print('Обратись к врачу!')
elif bmi < 18.5:
print('⚠️ Недостаточная масса')
print('Стоит набрать вес')
elif bmi < 25:
print('✅ Нормальная масса')
print('Отлично! Так держать!')
elif bmi < 30:
print('⚠️ Избыточная масса')
print('Подумай о диете')
elif bmi < 35:
print('⚠️ Ожирение 1 степени')
print('Нужно снизить вес')
elif bmi < 40:
print('🚨 Ожирение 2 степени')
print('Обратись к врачу!')
else:
print('🚨 Ожирение 3 степени')
print('Срочно к врачу!')
Пример 5: Игра “Камень-Ножницы-Бумага”
import random
choices = {1: 'камень', 2: 'ножницы', 3: 'бумага'}
print('🎮 Камень-Ножницы-Бумага\\n')
print('1 - Камень')
print('2 - Ножницы')
print('3 - Бумага\\n')
player = int(input('Твой выбор: '))
computer = random.randint(1, 3)
print(f'\\nТы: {choices[player]}')
print(f'Компьютер: {choices[computer]}\\n')
if player == computer:
print('🤝 Ничья!')
elif (player == 1 and computer == 2) or \\
(player == 2 and computer == 3) or \\
(player == 3 and computer == 1):
print('🎉 Ты выиграл!')
else:
print('😢 Компьютер выиграл!')
⚡ Частые ошибки
Ошибка 1: Неправильный порядок
# ❌ Плохо - первое условие перекрывает остальные
age = 15
if age >= 0:
print('Возраст положительный')
elif age >= 13:
print('Подросток') # Никогда не выполнится!
elif age >= 18:
print('Взрослый') # Никогда не выполнится!
# ✅ Хорошо - от большего к меньшему
if age >= 18:
print('Взрослый')
elif age >= 13:
print('Подросток')
elif age >= 0:
print('Возраст положительный')
Ошибка 2: Забыли двоеточие
# ❌ Ошибка
if age > 18:
print('Старше 18')
elif age > 13 # SyntaxError!
print('Подросток')
# ✅ Правильно
if age > 18:
print('Старше 18')
elif age > 13:
print('Подросток')
Ошибка 3: Разные отступы
# ❌ Ошибка
if age > 18:
print('Старше 18')
elif age > 13: # Неправильный отступ!
print('Подросток')
# ✅ Правильно - все на одном уровне
if age > 18:
print('Старше 18')
elif age > 13:
print('Подросток')
🎨 Стиль и читаемость
Плохо
if x>10 and y<5 or z==0:print('test');result=x*2
Хорошо
if (x > 10 and y < 5) or z == 0:
print('test')
result = x * 2
Советы:
- Пробелы вокруг операторов:
x > 10вместоx>10 - Скобки для сложных условий:
(a and b) or c - Каждый блок с новой строки
- Понятные имена переменных
🔄 elif vs несколько if
С elif (выполнится ОДИН блок)
score = 85
if score >= 90:
print('A')
elif score >= 80:
print('B') # Выполнится ЭТО
elif score >= 70:
print('C') # Это пропустится
С отдельными if (могут выполниться ВСЕ!)
score = 85
if score >= 90:
print('A')
if score >= 80:
print('B') # Выполнится
if score >= 70:
print('C') # И ЭТО тоже!
📋 Шпаргалка
# Структура
if условие1:
код1
elif условие2:
код2
elif условие3:
код3
else:
код_по_умолчанию
# Правила:
# 1. Проверяются сверху вниз
# 2. Выполнится ТОЛЬКО ОДИН блок
# 3. После выполнения блока - выход
# 4. else необязателен
# 5. elif сколько угодно
# Порядок важен!
# От более специфичного к более общему
🎓 Итог
- elif = “иначе если”
- Используй когда нужно проверить несколько вариантов
- Читается лучше чем вложенные if
- Выполнится только ОДИН блок (первый True)
- Порядок условий ВАЖЕН!
- Проверяй от более специфичного к общему
elif делает код понятным при множестве вариантов! 💪
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!