Вложенные условия

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Вложенные условные конструкции — это мощный инструмент в Python, который позволяет создавать сложную логику принятия решений. Это как задавать уточняющие вопросы: "Если на улице идет дождь, то... есть ли у меня зонт?". В этом уроке мы научимся встраивать одни инструкции `if/elif/else` в другие.

Вы попрактикуетесь в написании таких конструкций, научитесь находить и исправлять типичные ошибки, связанные с отступами, и разовьете умение "читать" код, предсказывая, по какой из множества ветвей пойдет его выполнение. Задания построены так, чтобы вы постепенно переходили от простых вложенных проверок к более разветвленным сценариям.

Список тем

Доступ в VIP-зону

id: 39979_task_nested_1

Дополните код, чтобы он проверял не только возраст посетителя, но и наличие у него VIP-статуса. Программа должна выводить "Welcome to VIP zone!", только если оба условия выполняются.

Заполните пропуски
age = 25
is_vip = True

if age >= 18:
    input1S is_vip == True:
        print(input2S)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Анализ числа

id: 39979_task_nested_2

Внимательно проследите за логикой выполнения этого кода. Какое сообщение будет выведено на экран в результате всех проверок для заданного числа?

Выберите правильный вариант ответа
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.")
Сообщения
Проверить
Показать подсказку

Ошибка в отступе

id: 39979_task_nested_3

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

Найдите ошибку и исправьте
is_admin = True
 
if is_admin == True:
print("You are an admin.")
    print("Welcome!")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Оценка результатов экзамена

id: 39979_task_nested_4

Этот код оценивает балл, полученный на экзамене. Проанализируйте код и впишите в поле ответа, какое слово будет выведено на экран для указанного балла.

Что должно получиться?
score = 85

if score > 50:
    if score > 90:
        print("Excellent")
    elif score > 75:
        print("Good")
    else:
        print("Pass")
else:
    print("Fail")
Сообщения
Проверить
Показать подсказку

Сборка кода для принятия решения

id: 39979_task_nested_5

Соберите из фрагментов работающий скрипт, который принимает решение о прогулке. Логика такая: если идет дождь, нужно проверить наличие зонта. Если дождя нет, но солнечно — можно идти гулять. Одна из строк является лишней.

Перетяните в правильном порядке строки из одного блока в другой
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
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Восстановите порядок проверки доступа

id: 39979_task_nested_6

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

Расставьте строки в правильном порядке
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"
Сообщения
Проверить
Показать подсказку

Исправьте логическую ошибку

id: 39979_task_nested_7

Этот код должен выводить "In stock" для товаров, количество которых больше 0, но меньше 10. Сейчас он работает неправильно из-за логической ошибки в одном из операторов сравнения. Найдите и исправьте ее.

Найдите ошибку и исправьте
quantity = 5
 
if quantity > 0:
    if quantity > 10:
        print("Too many")
    else:
        print("In stock")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет этот код?

id: 39979_task_nested_8

В этом примере внешний блок `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.")
Сообщения
Проверить
Показать подсказку

Соберите логику скидок

id: 39979_task_nested_9

Используя элементы из банка, соберите код, который рассчитывает цену билета. Логика такова: если возраст меньше 18, то цена 10. Иначе (для взрослых) проверяется, является ли человек студентом. Если да, то цена 15, если нет — 20.

Нужно правильно расставить в пропуски предложенные варианты
age = 20
is_student = True
price = 0

if input1S:
    price = 10
input2S:
    if input3S:
        price = 15
    else:
        input4S
age < 18
else
is_student
price = 20
age > 65
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру