Вложенные условные конструкции — это мощный инструмент в Python, который позволяет создавать сложную логику принятия решений. Это как задавать уточняющие вопросы: "Если на улице идет дождь, то... есть ли у меня зонт?". В этом уроке мы научимся встраивать одни инструкции `if/elif/else` в другие.
Вы попрактикуетесь в написании таких конструкций, научитесь находить и исправлять типичные ошибки, связанные с отступами, и разовьете умение "читать" код, предсказывая, по какой из множества ветвей пойдет его выполнение. Задания построены так, чтобы вы постепенно переходили от простых вложенных проверок к более разветвленным сценариям.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Доступ в VIP-зону
Дополните код, чтобы он проверял не только возраст посетителя, но и наличие у него VIP-статуса. Программа должна выводить "Welcome to VIP zone!", только если оба условия выполняются.
age = 25
is_vip = True
if age >= 18:
input1S is_vip == True:
print(input2S)Анализ числа
Внимательно проследите за логикой выполнения этого кода. Какое сообщение будет выведено на экран в результате всех проверок для заданного числа?
num = 15
if num > 0:
print("Number is positive.")
if num % 2 == 0:
print("And it is even.")
else:
print("And it is odd.")
else:
print("Number is not positive.")Ошибка в отступе
Этот код должен проверять, является ли пользователь администратором, и если да, то приветствовать его. Однако в коде есть ошибка с отступом, из-за которой он не будет работать. Найдите и исправьте строку с ошибкой.
is_admin = True if is_admin == True:print("You are an admin.") print("Welcome!")Оценка результатов экзамена
Этот код оценивает балл, полученный на экзамене. Проанализируйте код и впишите в поле ответа, какое слово будет выведено на экран для указанного балла.
score = 85
if score > 50:
if score > 90:
print("Excellent")
elif score > 75:
print("Good")
else:
print("Pass")
else:
print("Fail")Сборка кода для принятия решения
Соберите из фрагментов работающий скрипт, который принимает решение о прогулке. Логика такая: если идет дождь, нужно проверить наличие зонта. Если дождя нет, но солнечно — можно идти гулять. Одна из строк является лишней.
is_raining = False if have_umbrella:is_sunny = True print("Take an umbrella.")else:if is_raining: if is_sunny: print("Go for a walk!")import osВосстановите порядок проверки доступа
Расставьте строки кода в правильном порядке, чтобы получилась логичная система проверки логина и пароля. Сначала нужно проверить имя пользователя, и только если оно верное, проверять пароль.
else: print("Access granted")password_attempt = "12345"if username_attempt == correct_username: print("Incorrect password")username_attempt = "admin"else: if password_attempt == correct_password: print("Incorrect username")correct_username = "admin"correct_password = "12345"Исправьте логическую ошибку
Этот код должен выводить "In stock" для товаров, количество которых больше 0, но меньше 10. Сейчас он работает неправильно из-за логической ошибки в одном из операторов сравнения. Найдите и исправьте ее.
quantity = 5 if quantity > 0: if quantity > 10: print("Too many") else: print("In stock")Что выведет этот код?
В этом примере внешний блок `if` имеет также и блок `else`. Проанализируйте, какое из условий выполнится, и какой `print` в итоге сработает.
temperature = 20
is_hot = True
if temperature > 30:
if is_hot:
print("It's dangerously hot!")
else:
print("Anomaly: high temperature but not hot.")
else:
print("The temperature is moderate.")Соберите логику скидок
Используя элементы из банка, соберите код, который рассчитывает цену билета. Логика такова: если возраст меньше 18, то цена 10. Иначе (для взрослых) проверяется, является ли человек студентом. Если да, то цена 15, если нет — 20.
age = 20
is_student = True
price = 0
if input1S:
price = 10
input2S:
if input3S:
price = 15
else:
input4S