Вложенные условия: if внутри if

Вложенные условия: if внутри if Условия и циклы

Привет! Мы уже знаем, как использовать ifelif и else для проверки условий. Но иногда нужно проверить условие внутри другого условия. Например: «Если пользователь взрослый, проверь, есть ли у него права». Именно для этого используются вложенные условия.

В этой статье мы разберём:

  • Что такое вложенные условия
  • Синтаксис и примеры
  • Когда использовать вложенные if
  • Отличие от логических операторов

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание ifelifelse

Совет: Вложенные условия — это 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

Используй, когда:

  • Условия зависят друг от друга
  • Нужна иерархическая проверка
  • Условия проверяются последовательно

Не используй, когда:

  • Условия независимы
  • Можно использовать логические операторы (andornot)
  • Вложенность больше 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 — проверяет условие внутри другого условия

Шпаргалка

Что нужноКак пишется
Вложенный ifif a: if b: ...
Проверка нескольких условийif a and b:
Вложенный if с elseif a: if b: ... else: ...

Заключение / Выводы

Сегодня мы:

  • Узнали, что такое вложенные условия
  • Разобрали синтаксис и примеры
  • Увидели, когда использовать вложенные if
  • Разобрали частые ошибки

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×