Привет! Мы уже знаем, как использовать if, elif и else для проверки условий. Но иногда нужно проверить условие внутри другого условия. Например: «Если пользователь взрослый, проверь, есть ли у него права». Именно для этого используются вложенные условия.
В этой статье мы разберём:
- Что такое вложенные условия
- Синтаксис и примеры
- Когда использовать вложенные if
- Отличие от логических операторов
- Что нужно знать перед началом
- Основная часть
- Синтаксис вложенных условий
- Простой пример
- Несколько уровней вложенности
- Пример с вводом пользователя
- Вложенные vs логические операторы
- Проверка на None
- Когда использовать вложенные if
- Задачи для закрепления
- Нюансы и подводные камны
- Сложность чтения
- Использование логических операторов
- Вложенные if с elif и else
- Частые ошибки и как их избежать
- Ошибка 1: Слишком глубокая вложенность
- Ошибка 2: Забыл else
- Ошибка 3: Путаница между вложенными if и elif
- Шпаргалка
- Заключение / Выводы
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание
if,elif,else
Совет: Вложенные условия — это
ifвнутри другогоif. Они позволяют проверять условия последовательно, когда одно условие зависит от другого.
Основная часть
Синтаксис вложенных условий
if условие1:
# код, если условие1 истинно
if условие2:
# код, если условие1 И условие2 истинны
else:
# код, если условие1 истинно, а условие2 ложно
else:
# код, если условие1 ложноСовет: Вложенные условия позволяют создавать иерархию проверок: сначала внешняя, потом внутренняя.
Простой пример
age = 20
has_license = True
if age >= 18:
if has_license:
print("Можно водить машину")
else:
print("Нужны права")
else:
print("Слишком молод")Результат: "Можно водить машину"
Несколько уровней вложенности
score = 85
has_extra = True
if score >= 75:
if has_extra:
print("Отлично, с бонусом")
else:
print("Хорошо, без бонуса")
else:
if has_extra:
print("Есть бонус, но оценка низкая")
else:
print("Низкая оценка")Совет: Старайся не вкладывать более 2-3 уровней. Это усложняет чтение кода.
Пример с вводом пользователя
username = input("Введите имя: ")
password = input("Введите пароль: ")
if username == "admin":
if password == "12345":
print("Добро пожаловать, админ!")
else:
print("Неверный пароль")
else:
if username == "guest":
print("Добро пожаловать, гость!")
else:
print("Неизвестный пользователь")Вложенные vs логические операторы
С логическими операторами (короче):
age = 20
has_license = True
if age >= 18 and has_license:
print("Можно водить машину")
elif age >= 18 and not has_license:
print("Нужны права")
else:
print("Слишком молод")С вложенными if (детальнее):
age = 20
has_license = True
if age >= 18:
if has_license:
print("Можно водить машину")
else:
print("Нужны права")
else:
print("Слишком молод")Совет: Если условия независимы — используй логические операторы. Если одно условие проверяется только при выполнении другого — используй вложенные if.
Проверка на None
data = get_data()
if data is not None:
if "age" in data:
if data["age"] >= 18:
print("Пользователь взрослый")
else:
print("Пользователь несовершеннолетний")
else:
print("Возраст не указан")
else:
print("Данные отсутствуют")Когда использовать вложенные if
Используй, когда:
- Условия зависят друг от друга
- Нужна иерархическая проверка
- Условия проверяются последовательно
Не используй, когда:
- Условия независимы
- Можно использовать логические операторы (
and,or,not) - Вложенность больше 3 уровней
Задачи для закрепления
Задача 1. Напиши программу, которая проверяет, является ли число чётным, и если да, то проверяет, кратно ли оно 5.
Задача 2. Напиши программу, которая запрашивает имя и пароль. Если имя «admin» и пароль «12345» — приветствие админа. Иначе — проверка гостя.
Задача 3. Напиши программу, которая проверяет возраст и наличие прав, и выводит соответствующее сообщение.
Задача 4. Напиши программу, которая проверяет, что число больше 0, и если да, то проверяет, чётное ли оно.
Задача 5. Чем отличается вложенный if от использования and?
Ответы:
Задача 1.
num = 20
if num % 2 == 0:
if num % 5 == 0:
print("Чётное и кратно 5")
else:
print("Чётное, но не кратно 5")
else:
print("Нечётное")Задача 2.
username = input("Имя: ")
password = input("Пароль: ")
if username == "admin":
if password == "12345":
print("Добро пожаловать, админ!")
else:
print("Неверный пароль")
else:
if username == "guest":
print("Добро пожаловать, гость!")
else:
print("Неизвестный пользователь")Задача 3.
age = 20
has_license = True
if age >= 18:
if has_license:
print("Можно водить")
else:
print("Нужны права")
else:
print("Слишком молод")Задача 4.
num = 4
if num > 0:
if num % 2 == 0:
print("Положительное и чётное")
else:
print("Положительное и нечётное")
else:
print("Не положительное")Задача 5.
# Вложенный if проверяет условие только если внешнее условие истинно.
# and проверяет оба условия одновременно, но не показывает, какое именно не выполнено.Нюансы и подводные камны
Сложность чтения
Слишком глубокие вложенности усложняют чтение кода. Старайся использовать не более 2-3 уровней.
# Плохо (4 уровня)
if a:
if b:
if c:
if d:
print("OK")Использование логических операторов
Часто вложенные if можно заменить на and.
# Вложенный if
if age >= 18:
if has_license:
print("OK")
# С and
if age >= 18 and has_license:
print("OK")Вложенные if с elif и else
if condition1:
if condition2:
print("A")
else:
print("B")
else:
print("C")Частые ошибки и как их избежать
Ошибка 1: Слишком глубокая вложенность
Старайся использовать не более 2-3 уровней.
Ошибка 2: Забыл else
Всегда учитывай, что делать, если условие ложно.
Ошибка 3: Путаница между вложенными if и elif
elif— проверяет другое условие на том же уровне- Вложенный if — проверяет условие внутри другого условия
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Вложенный if | if a: if b: ... |
| Проверка нескольких условий | if a and b: |
| Вложенный if с else | if a: if b: ... else: ... |
Заключение / Выводы
Сегодня мы:
- Узнали, что такое вложенные условия
- Разобрали синтаксис и примеры
- Увидели, когда использовать вложенные if
- Разобрали частые ошибки








