Тернарный оператор

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

Тренажер по Python

Этот набор заданий посвящен тернарному оператору в Python. Это мощный инструмент, который позволяет записывать простые условные выражения в одну строку, делая код более компактным и, в некоторых случаях, более читаемым. С его помощью можно заменить громоздкие конструкции if-else на элегантные однострочные решения.

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

Список тем

Основы синтаксиса: if и else

id: 39968_task_ternary_1

Тернарный оператор имеет строгий синтаксис. Заполните пропуски ключевыми словами, чтобы присвоить переменной `status` значение 'Активен' в случае, если `is_active` истинно, и 'Неактивен' в противном случае.

Заполните пропуски
is_active = True
status = 'Активен' input1S is_active input2S 'Неактивен'
print(status)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Предскажите результат

id: 39968_task_ternary_2

Проанализируйте код. Пользователю 21 год. Будет ли ему предоставлен полный доступ? Выберите правильный вариант ответа, который будет содержаться в переменной `access`.

Выберите правильный вариант ответа
age = 21
access = 'Полный доступ' if age >= 18 else 'Доступ ограничен'
# Что будет в переменной access?
Сообщения
Проверить
Показать подсказку

Какой будет размер скидки?

id: 39968_task_ternary_3

В этом коде размер скидки зависит от того, является ли пользователь участником программы лояльности (`is_member`). Посмотрите на значение переменной `is_member` и впишите, какое число будет выведено на экран.

Что должно получиться?
is_member = False
discount = 20 if is_member else 5
print(discount)
Сообщения
Проверить
Показать подсказку

Исправьте порядок в выражении

id: 39968_task_ternary_4

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

Найдите ошибку и исправьте
user_role = 'Admin'
permission = 'Granted' else 'Denied' if user_role == 'Admin'
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите выражение для проверки четности

id: 39968_task_ternary_5

Перетащите строки кода в правильном порядке, чтобы создать тернарное выражение. Оно должно присваивать переменной `result` строку 'Четное', если `num` делится на 2 без остатка, и 'Нечетное' в ином случае. Две части являются лишними.

Перетяните в правильном порядке строки из одного блока в другой
"Четное"
else
num % 2 == 0
"Нечетное"
if
result =
then
: 
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Тернарный оператор внутри функции

id: 39968_task_ternary_6

Тернарный оператор — это выражение, а значит, его результат можно сразу передать в функцию, например `print()`. Впишите в пропуск полное тернарное выражение, которое выведет 'В наличии', если `items_in_stock > 0`, и 'Нет в наличии' в противном случае.

Заполните пропуски
items_in_stock = 5
print(input1S)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сопоставьте тернарный оператор и if-else

id: 39968_task_ternary_7

Тернарный оператор — это синтаксический сахар для простых конструкций if-else. Сопоставьте каждый тернарный оператор в левой колонке с его полным, многострочным эквивалентом в правой.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
text = "Hi" if lang == "en" else "Привет"
limit = 100 if is_vip else 10
color = "red" if error else "green"
if is_vip:
    limit = 100
else:
    limit = 10
if error:
    color = "red"
else:
    color = "green"
if lang == "en":
    text = "Hi"
else:
    text = "Привет"
Сообщения
Проверить
Показать подсказку

Соберите выражение из банка токенов

id: 39968_task_ternary_8

Используя элементы из "банка", соберите выражение. Переменной `can_vote` должно быть присвоено значение `True`, если возраст (`age`) больше или равен 18 И имеется гражданство (`has_citizenship`). В противном случае — `False`.

Нужно правильно расставить в пропуски предложенные варианты
age = 25
has_citizenship = True
can_vote = input1S input2S age >= 18 and has_citizenship input3S input4S
True
if
else
False
when
is
18
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Результат вложенного оператора

id: 39968_task_ternary_9

Тернарные операторы можно вкладывать друг в друга, создавая цепочки проверок. Проанализируйте вложенную конструкцию и впишите, какая оценка (`grade`) будет выведена на экран для `score = 85`.

Что должно получиться?
score = 85
grade = 'A' if score >= 90 else 'B' if score >= 80 else 'C'
print(grade)
Сообщения
Проверить
Показать подсказку

Найдите оператор-самозванец

id: 39968_task_ternary_10

В этом коде допущена одна из самых частых ошибок новичков: вместо оператора сравнения используется оператор присваивания. Это приводит к ошибке `SyntaxError`. Найдите и исправьте эту ошибку.

Найдите ошибку и исправьте
num = 10
message = "Равно 10" if num = 10 else "Не равно 10"
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру