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

F-строки позволяют выполнять операции прямо внутри фигурных скобок:
f"Результат: {2 + 2}" вернет "Результат: 4".
Можно использовать любые допустимые выражения Python, например: f"Имя: {person['name'].upper() if person['name'] else 'Неизвестно'}".

Использовать f-строки с операциями в Python очень просто и удобно. Внутри f-строки можно непосредственно вставлять выражения, которые будут вычислены и подставлены в результирующую строку.

Базовый пример:


name = "Alice"
age = 30
print(f"Привет, меня зовут {name}, и мне {age + 5} лет.") # Вывод: Привет, меня зовут Alice, и мне 35 лет.
  

Разные типы операций:

  • Арифметические:
  • 
    x = 10
    y = 3
    print(f"Сумма: {x + y}, Разность: {x - y}, Произведение: {x * y}, Деление: {x / y}, Целочисленное деление: {x // y}, Остаток: {x % y}")
    # Вывод: Сумма: 13, Разность: 7, Произведение: 30, Деление: 3.3333333333333335, Целочисленное деление: 3, Остаток: 1
          
  • Строковые:
  • 
    greeting = "Hello"
    name = "Bob"
    print(f"{greeting}, {name.upper()}!") # Вывод: Hello, BOB!
          
  • Логические:
  • 
    is_active = True
    print(f"Статус пользователя: {'Активен' if is_active else 'Не активен'}") # Вывод: Статус пользователя: Активен
          
  • Функции:
  • 
    def square(x):
      return x * x
    
    number = 5
    print(f"Квадрат числа {number} равен {square(number)}") # Вывод: Квадрат числа 5 равен 25
          
  • Форматирование: Можно комбинировать операции с форматированием внутри f-строк.
  • 
    price = 45.6789
    quantity = 3
    print(f"Общая стоимость: {price * quantity:.2f}") # Вывод: Общая стоимость: 137.04 (округление до двух знаков после запятой)
        

Важно: Внутри f-строк можно использовать практически любые валидные выражения Python. Главное - следить за читаемостью кода. Если выражение становится слишком сложным, лучше вынести его в отдельную переменную перед использованием в f-строке.

Пример сложного выражения (лучше избегать таких в "чистом" виде в f-строке):


data = {'a': 1, 'b': 2, 'c': 3}
print(f"Сумма значений: {sum(value for value in data.values() if value % 2 != 0)}") # Вывод: Сумма значений: 4 (Суммирует только нечетные значения)
  

Вместо этого, лучше сделать так:


data = {'a': 1, 'b': 2, 'c': 3}
odd_values_sum = sum(value for value in data.values() if value % 2 != 0)
print(f"Сумма значений: {odd_values_sum}") # Вывод: Сумма значений: 4
  

Использование f-строк с операциями делает код более лаконичным и читаемым, особенно когда нужно динамически форматировать строки с вычислениями.

0