Привет! Мы уже знаем, как использовать if-else для ветвления. Но иногда нужно записать простое условие в одну строку. Именно для этого существует тернарный оператор.
В этой статье мы разберём:
- Что такое тернарный оператор
- Синтаксис и примеры
- Когда использовать
- Разницу с обычным if-else
- Что нужно знать перед началом
- Основная часть
- Синтаксис тернарного оператора
- Простой пример
- Пример с числами
- Пример с вводом пользователя
- Пример с проверкой на None
- Вложенные тернарные операторы
- Тернарный оператор в print()
- Когда использовать тернарный оператор
- Ошибка: тернарный оператор не выполняет действия
- Задачи для закрепления
- Нюансы и подводные камни
- Приоритет операторов
- Возвращаемые значения
- Тернарный оператор не заменяет if-else полностью
- Частые ошибки и как их избежать
- Ошибка 1: Забыл else
- Ошибка 2: Использование для выполнения действий
- Ошибка 3: Слишком сложные вложенные тернарные операторы
- Шпаргалка
- Заключение
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание
if-else
Совет: Тернарный оператор — это короткая запись
if-elseдля простых случаев.
Основная часть
Синтаксис тернарного оператора
значение_если_True if условие else значение_если_FalseСравнение с if-else:
| Обычный if-else | Тернарный оператор |
|---|---|
if условие:x = значение_Trueelse:x = значение_False | x = значение_True if условие else значение_False |
Совет: Тернарный оператор возвращает значение, поэтому его можно использовать в выражениях.
Простой пример
Обычный if-else:
age = 18
if age >= 18:
status = "совершеннолетний"
else:
status = "несовершеннолетний"
print(status) # совершеннолетнийТернарный оператор:
age = 18
status = "совершеннолетний" if age >= 18 else "несовершеннолетний"
print(status) # совершеннолетнийПример с числами
x = 10
max_value = x if x > 5 else 0
print(max_value) # 10x = 3
max_value = x if x > 5 else 0
print(max_value) # 0Пример с вводом пользователя
num = int(input("Введите число: "))
result = "положительное" if num > 0 else "не положительное"
print(f"Число {result}")Пример с проверкой на None
value = None
result = value if value is not None else "значение отсутствует"
print(result) # значение отсутствуетvalue = 42
result = value if value is not None else "значение отсутствует"
print(result) # 42Вложенные тернарные операторы
score = 85
grade = "Отлично" if score >= 90 else "Хорошо" if score >= 75 else "Удовлетворительно" if score >= 50 else "Неудовлетворительно"
print(grade) # ХорошоВажно: Вложенные тернарные операторы сложно читать. Лучше использовать обычный
if-elif-else.
Тернарный оператор в print()
age = 16
print("Доступ разрешён" if age >= 18 else "Доступ запрещён")Когда использовать тернарный оператор
Используй, когда:
- Условие простое
- Ветки короткие (1-2 слова)
- Нужно присвоить значение переменной
Не используй, когда:
- Условие сложное (много
and/or) - Ветки содержат несколько строк кода
- Нужно выполнить действия, а не вернуть значение
Ошибка: тернарный оператор не выполняет действия
# Неправильно (не выполнит print)
print("Сообщение") if x > 5 else None
# Правильно (возвращает значение)
result = "Сообщение" if x > 5 else NoneЗадачи для закрепления
Задача 1. Напиши тернарный оператор, который присваивает переменной status значение «чётное» или «нечётное» в зависимости от числа.
Задача 2. Напиши тернарный оператор, который возвращает «большое» если число > 100, иначе «маленькое».
Задача 3. Напиши тернарный оператор для проверки, является ли пользователь администратором.
Задача 4. Напиши тернарный оператор для проверки, пустая ли строка.
Задача 5. Что выведет код?
x = 5; y = 10; max_val = x if x > y else y; print(max_val)Ответы:
Задача 1.
num = 4
status = "чётное" if num % 2 == 0 else "нечётное"
print(status)Задача 2.
num = 150
size = "большое" if num > 100 else "маленькое"
print(size)Задача 3.
is_admin = True
access = "доступ есть" if is_admin else "доступа нет"
print(access)Задача 4.
text = ""
is_empty = True if text == "" else False
print(is_empty)Задача 5.
# 10Нюансы и подводные камни
Приоритет операторов
Тернарный оператор имеет низкий приоритет, поэтому при сложных выражениях используй скобки.
result = (x if x > 0 else -x) * 2Возвращаемые значения
Тернарный оператор возвращает значение, поэтому его можно использовать в выражениях.
total = price * (0.9 if is_discount else 1.0)Тернарный оператор не заменяет if-else полностью
Тернарный оператор предназначен для простых условий. Для сложной логики используй обычный if-else.
Частые ошибки и как их избежать
Ошибка 1: Забыл else
❌ x = 5 if y > 0 — ошибка!
✅ x = 5 if y > 0 else 0
Ошибка 2: Использование для выполнения действий
❌ print("Yes") if x > 0 else None — плохо
✅ result = "Yes" if x > 0 else None
Ошибка 3: Слишком сложные вложенные тернарные операторы
Используй обычный if-elif-else
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Тернарный оператор | x if условие else y |
| Присвоение значения | var = value_true if condition else value_false |
| Проверка на None | value if value is not None else default |
Заключение
Сегодня мы:
- Узнали, что такое тернарный оператор
- Разобрали синтаксис и примеры
- Увидели, когда использовать
- Разобрали частые ошибки








