Skip to content

Latest commit

 

History

History
127 lines (87 loc) · 9.98 KB

File metadata and controls

127 lines (87 loc) · 9.98 KB

Урок 16. Тернарный условный оператор

16.1 Тернарный условный оператор.

Тернарный условный оператор - это специальный оператор, который позволяет сократить запись условного выражения в одну строку.

Он имеет следующий синтаксис:

<выражение1> if <условие> else <выражение2>

Он выполняет следующее действие: если условие истинно, то возвращается значение выражения1, иначе возвращается значение выражения2.

Например, если вы хотите присвоить переменной x значение 1, если условие истинно, и значение 0 в противном случае, вы можете записать следующее:

x = 1 if условие else 0

Пример использования тернарного условного оператора:

x = 10
result = "Число положительное" if x > 0 else "Число неположительное"
print(result)  # Вывод: Число положительное

Та же запись с использованием оператора if-else:

x = 10
if x > 0:
  result = "Число положительное"
else:
  result = "Число неположительное"
print(result)

Результат работы тернарного оператора, обычно, сохраняем в переменной.

a = 3
b = 4
res = a + 2 if a > b else b - 5
print(res)

Внутри тернарного оператора может быть любая конструкция языка Python, но только одна! Для примера мы можем даже вернуть результат работы функции print()

a = 3
b = 4
res = print(a) if a > b else print(b)
print(res)

Но результатом таких действий будет None, так как функция print() ничего не возвращает.

Тернарный оператор можно вызывать прямо внутри различных конструкций,
Например:

z = -3
print("Число положительное" if z > 0 else "Число неположительное")  # Вывод: Число неположительное

a = 2
str = f"a - {'четное' if a % 2 == 0 else 'нечетное'} число"
print(str)

16.2 Вложенный тернарный оператор.

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

x = 10
result = "больше 5" if x > 5 else ("равно 5" if x == 5 else "меньше 5")
print(result)

value = 0
result = "Положительное" if value > 0 else "Отрицательное" if value < 0 else "Ноль"
print(result)  # Вывод: Ноль

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

Вопросы:

  1. Что такое тернарный условный оператор?
  2. Каков синтаксис тернарного условного оператора?
  3. В чем разница между обычным условным оператором if и тернарным оператором?
  4. Сколько возвращаемых конструкций может быть внутри тернарного оператора?
  5. Что такое вложенный тернарный оператор?
  6. Каковы потенциальные недостатки использования тернарного оператора по сравнению с обычными конструкциями if-else?
  7. Можно ли использовать функции (например print()) внутри тернарного оператора?

Задачи:

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

  2. На вход программе подается строка. Создайте переменную name и присвойте ей значение из этой строки. Используйте тернарный оператор, чтобы вывести "Привет, [имя]" если строка не пустая, и "Привет, незнакомец", если строка пустая.

  3. Напишите программу, которая проверяет, является ли элемент списка my_list = [1, 2, 3] пустым. Используйте тернарный оператор для вывода "Список не пустой" или "Список пустой".

  4. На вход программе подается целое число. Создайте переменную age и присвойте ей значение этого числа. Используйте тернарный оператор, чтобы вывести "Взрослый" если возраст больше или равен 18, и "Несовершеннолетний" в противном случае.

  5. На вход программе подается дробное число. Создайте переменную temperature и присвойте ей это число. Используйте тернарный оператор, чтобы вывести "Тепло", если температура выше 20 градусов, "Комфортно", если больше 15 градусов и "Холодно" в остальных случаях.

  6. На вход программе подаются два вещественных числа, каждое с новой строки. Необходимо их прочитать и с помощью тернарного условного оператора вычислить наибольшее среди них и присвоить переменной d. Полученное значение переменной d вывести на экран.

  7. На вход программе подается целое число. Необходимо его прочитать и переменной msg присвоить строку: "кратно 3", если введенное число кратно 3 или "не кратно 3", если введенное число не кратно 3. Программу реализовать с использованием тернарного оператора. Значение переменной msg вывести на экран.

  8. На вход программе подается слово (строка). Необходимо ее прочитать и переменной msg присвоить строку "палиндром", если введенное слово является палиндромом (одинаково читается и вперед и назад), иначе присвоить строку "не палиндром". Проверку на палиндром проводить без учета регистра. Программу реализовать с помощью тернарного условного оператора. Значение переменной msg отобразить на экране.

  9. На вход программе подается целое число 0 или 1. Необходимо его прочитать и преобразовать в строку по правилу: если число 0 вернуть строку "False", если число равно 1 вернуть строку "True". Программу реализовать с помощью тернарного условного оператора. Результат (строку) отобразить на экране.

  10. На вход программе подается целое число: текущее время (секунды) в диапазоне [0; 59]. Необходимо его прочитать и вычислить следующее за ним значение в секундах с учетом границ диапазона [0; 59]. То есть, если прочитанное значение равно 59, то следующее должно быть равно 0. И так по кругу. Реализуйте программу с помощью тернарного условного оператора. Результат (следующее значение) отобразите на экране.

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


Предыдущий урок | Следующий урок