Как использовать f-строку с условием внутри?

Для вставки условного выражения внутрь f-строки, используйте тернарный оператор:
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 вычисляется в зависимости от возраста.
  • Внутри f-строки {'взрослый' 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-строки снижают читаемость.
0