Вложенные конструкции 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) является абсолютно допустимым — именно это и делает его «вложенным».
Задание
НовичокНапишите программу, которая определяет право на просмотр фильма в зависимости от возраста и сопровождения родителей.
Данный код (не изменять):
- Переменная
ageопределена и ей присвоено значение из ввода - Переменная
with_parentопределена и ей присвоено логическое (boolean) значение — оно равноTrue, если ввод равен"true", илиFalse, если ввод равен"false" - Переменная
messageопределена со значением"None"
Ваша задача:
Используйте вложенные операторы if-else, чтобы присвоить переменной message одну из следующих строк:
- Если возраст 18 лет или старше, установите
messageв значение"You can watch any movie". - Если возраст меньше 18 лет:
- Если
with_parentимеет значениеTrue, установитеmessageв значение"You can watch PG-13 movies". - Если
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)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение данных13Списки: продвинутый уровень
Срезы списков. Часть 1Срезы списков. Часть 2Операторы последовательностейПроверка вхождения2Переменные
ЧислаСтрокиЛогический типПравила именованияПустые переменныеИтоги — Инициализация переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileОператор BreakОператор ContinueПовторение: ФакториалФункция RangeВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
ВыводВывод с переменнымиВводПриведение типовПовторение — До 120Повторение — Истина или ложь9Функции
Объявление функцииАргументыВозврат значенияПовторение — функция SigmaПовторение — функция валидацииЗначения по умолчанию12Итерация по последовательностям
Итерация по элементамФункция enumerateИтерация по строкам. Часть 1Итерация по строкам. Часть 2