Menu
Coddy logo textTech

Вложенные конструкции if - else

Часть раздела Fundamentals путешествия по Python на Coddy — урок 23 из 77.

Вложенные инструкции If-Else позволяют проверять несколько условий, размещая одну инструкцию if-else внутри другой. Вы можете вложить блок if внутрь блока else — это распространенный и допустимый паттерн в Python.

Создайте простую конструкцию if-else:

age = 18
title = "None"
if age >= 18:
    title = "Adult"
else:
    title = "Minor"

Теперь давайте добавим вложенное условие внутри блока else:

age = 18
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
else:
    title = "Minor"
    if age >= 13:
        title = "Teenager"
    else:
        title = "Child"

Вы также можете вложить условие внутрь блока if:

age = 25
title = "None"
allowed_to_drink = False
if age >= 18:
    title = "Adult"
    if age >= 21:
        allowed_to_drink = True
    else:
        allowed_to_drink = False
else:
    title = "Minor"

В обоих примерах внутренняя конструкция if-else выполняется только тогда, когда выполняется внешнее условие, содержащее её. Размещение оператора if внутри блока else (или внутри блока if) является абсолютно допустимым — именно это и делает его «вложенным».

challenge icon

Задание

Новичок

Напишите программу, которая определяет право на просмотр фильма в зависимости от возраста и сопровождения родителей.

Данный код (не изменять):

  1. Переменная age определена и ей присвоено значение из ввода
  2. Переменная with_parent определена и ей присвоено логическое (boolean) значение — оно равно True, если ввод равен "true", или False, если ввод равен "false"
  3. Переменная message определена со значением "None"

Ваша задача:
Используйте вложенные операторы if-else, чтобы присвоить переменной message одну из следующих строк:

  1. Если возраст 18 лет или старше, установите message в значение "You can watch any movie".
  2. Если возраст меньше 18 лет:
    1. Если with_parent имеет значение True, установите message в значение "You can watch PG-13 movies".
    2. Если with_parent имеет значение False, установите message в значение "You can only watch G-rated movies".

Важно: Поскольку with_parent уже является логическим значением, проверяйте его напрямую (например, if with_parent:) — не сравнивайте его со строкой типа "true" или "True".

Важно: Строки должны совпадать в точности — включая регистр и пунктуацию. Например, используйте "PG-13 movies" (строчная 'm'), а не "PG-13 Movies".

Шпаргалка

Вложенные инструкции if-elif-else позволяют принимать иерархические решения:

if condition1:
    if condition2:
        # Код для случая, когда оба условия истинны
    else:
        # Код для случая, когда condition1 истинно, но condition2 ложно
else:
    # Код для случая, когда condition1 ложно

Пример вложенных условий:

if age > 18:
    if has_license:
        print("You can drive")
    else:
        print("Get a license first")
else:
    print("Too young to drive")

Вложенность может быть бесконечной, что позволяет создавать сложные деревья решений:

if condition1:
    if condition2:
        if condition3:
            # Больше вложенных условий...

Попробуйте сами

# Получить возраст как целое число
age = int(input())

# Получить наличие сопровождения родителей как логическое значение (True/False)
with_parent = input() == "true"

# Объявить переменную с именем message со значением "None"
message = "None"

# Напишите ваш вложенный код if-else здесь


# Не изменяйте ничего ниже этой строки
print(message)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals