Тернарный оператор: условия в одну строку

Тернарный оператор: условия в одну строку Условия и циклы

Привет! Мы уже знаем, как использовать if-else для ветвления. Но иногда нужно записать простое условие в одну строку. Именно для этого существует тернарный оператор.

В этой статье мы разберём:

  • Что такое тернарный оператор
  • Синтаксис и примеры
  • Когда использовать
  • Разницу с обычным if-else

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание if-else

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

Основная часть

Синтаксис тернарного оператора

значение_если_True if условие else значение_если_False

Сравнение с if-else:

Обычный if-elseТернарный оператор
if условие:
x = значение_True
else:
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)   # 10
x = 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
Проверка на Nonevalue if value is not None else default

Заключение

Сегодня мы:

  • Узнали, что такое тернарный оператор
  • Разобрали синтаксис и примеры
  • Увидели, когда использовать
  • Разобрали частые ошибки

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×