f"Текст {'если правда' if условие else 'если ложь'}"
x = 5
f"x {'больше 3' if x > 3 else 'меньше или равно 3'}"
Использовать условную логику внутри f-строки можно с помощью тернарного оператора (условного выражения). Тернарный оператор имеет вид: <выражение_если_истина> if <условие> else <выражение_если_ложь>
.
Вот пример, демонстрирующий использование f-строки с условием:
name = "Alice"
age = 25
is_adult = age >= 18
greeting = f"Привет, {name}! Тебе {age} лет, и ты {'взрослый' if is_adult else 'не взрослый'}."
print(greeting) # Вывод: Привет, Alice! Тебе 25 лет, и ты взрослый.
age = 16
is_adult = age >= 18
greeting = f"Привет, {name}! Тебе {age} лет, и ты {'взрослый' if is_adult else 'не взрослый'}."
print(greeting) # Вывод: Привет, Alice! Тебе 16 лет, и ты не взрослый.
Разъяснение:
is_adult
вычисляется в зависимости от возраста.{'взрослый' if is_adult else 'не взрослый'}
является тернарным оператором.is_adult
истинно (True
), то в строку будет вставлено значение 'взрослый'
.is_adult
ложно (False
), то в строку будет вставлено значение 'не взрослый'
.Альтернативный способ (более читаемый для сложных условий):
name = "Bob"
status = "active"
message = f"Пользователь {name}: "
if status == "active":
message += "Активен"
else:
message += "Не активен"
print(message) # Вывод: Пользователь Bob: Активен
Когда стоит использовать тернарный оператор в f-строке:
Когда стоит избегать тернарного оператора в f-строке:
if/else
блок до форматирования строки, чтобы сделать код более читаемым и понятным. Сложные условия внутри f-строки снижают читаемость.