F-строки в Python

F-строки в Python: как работают, способы форматирования и множество примеров

F-строки, также известные как «форматированные строковые литералы» или «f-strings», были введены в Python 3.6 и представляют собой современный способ форматирования строк. Они являются удобным и эффективным инструментом, позволяющим включать выражения Python в строковые литералы, используя фигурные скобки {}.

Синтаксис f-строк

F-строки начинаются с префикса f или F перед строковым литералом. Выражения внутри фигурных скобок {} вычисляются и заменяются их значениями при создании строки.

f"Текст {выражение}"

Простой пример использования f-строк

name = "Василий"
age = 25

# Создание f-строки
greeting = f"Привет, меня зовут {name} и мне {age} лет."

print(greeting)  

#Привет, меня зовут Василий и мне 25 лет.

Выражения в f-строках

F-строки позволяют использовать любые выражения Python внутри фигурных скобок.

length = 10
width = 5

# Вычисление площади прямоугольника
area = f"Площадь прямоугольника со сторонами {length} и {width} равна {length * width}."
print(area)  

#Площадь прямоугольника со сторонами 10 и 5 равна 50.

Форматирование чисел в F-строках

F-строки в Python предоставляют гибкие возможности для форматирования чисел. В этом разделе мы рассмотрим различные аспекты форматирования чисел с использованием F-строк, включая округление, выравнивание, форматирование с разделителями разрядов и другие.

Округление

Округление чисел может быть выполнено с помощью F-строки, для этого после двоеточия указываем количество знаков после запятой и ставим букву «f» внутри фигурных скобок:

pi = 3.14159265
rounded_pi = f"Значение числа пи, округленное до 2 знаков после запятой: {pi:.2f}"
print(rounded_pi)  

#Значение числа пи, округленное до 2 знаков после запятой: 3.14

Выравнивание

Числа можно выравнивать по правому, левому краю или по центру, указав соответствующий символ и ширину поля после двоеточия внутри фигурных скобок:

number = 42

# Выравнивание по правому краю
right_aligned = f"{number:>10}"
print(right_aligned)  # Вывод: "        42"

# Выравнивание по левому краю
left_aligned = f"{number:<10}"
print(left_aligned)  # Вывод: "42        "

# Выравнивание по центру
center_aligned = f"{number:^10}"
print(center_aligned)  # Вывод: "    42    "

Разделители разрядов

F-строки позволяют отображать разделители разрядов в числах для улучшения читаемости:

large_number = 1000000
formatted_number = f"Число с разделителями разрядов: {large_number:,}"
print(formatted_number)  

#Число с разделителями разрядов: 1,000,000

Процентное форматирование

Для отображения числа в виде процентов, после двоеточия ставим точку, число знаков после точки и знак %:

fraction = 0.25
percentage = f"Доля в процентах: {fraction:.2%}"
print(percentage)  

#Доля в процентах: 25.00%

Шестнадцатеричное, восьмеричное и двоичное представление чисел

F-строки также позволяют отображать числа в шестнадцатеричной, восьмеричной и двоичной форме, используя спецификаторы «x», «o» и «b» соответственно:

number = 255

# Шестнадцатеричное представление
hexadecimal = f"Шестнадцатеричное представление числа {number}: {number:x}"
print(hexadecimal)  # Вывод: Шестнадцатеричное представление числа 255: ff

# Восьмеричное представление
octal = f"Восьмеричное представление числа {number}: {number:o}"
print(octal)  # Вывод: Восьмеричное представление числа 255: 377

# Двоичное представление
binary = f"Двоичное представление числа {number}: {number:b}"
print(binary)  # Вывод: Двоичное представление числа 255: 11111111

Настройка форматирования с помощью переменных

F-строки позволяют использовать переменные для настройки форматирования, такие как ширина поля и количество знаков после запятой:

number = 123.45678
width = 10
precision = 2

formatted_number = f"Число с заданной шириной поля и точностью: {number:{width}.{precision}f}"
print(formatted_number)  

#Число с заданной шириной поля и точностью:    123.46

Экспоненциальный формат

Для отображения числа в экспоненциальном формате, используйте букву «e» после двоеточия:

number = 12345678.9
exponential_format = f"Число в экспоненциальном формате: {number:.2e}"
print(exponential_format)  

#Число в экспоненциальном формате: 1.23e+07

Многострочные f-строки

F-строки могут использоваться для создания многострочных строк.

name = "Олег"
age = 30

# Многострочная f-строка
multiline_f_string = f"""\
Привет!
Меня зовут {name}.
Мне {age} лет."""
print(multiline_f_string)

Вывод:

Привет!
Меня зовут Олег.
Мне 30 лет.

Экранирование символов

Для того чтобы использовать фигурные скобки как символы в f-строках, их нужно экранировать, используя двойные фигурные скобки {{ и }}.

discount = 10

# Экранирование фигурных скобок
escaped_brackets = f"Скидка составляет {discount}% (обозначается символами '{{}}')."
print(escaped_brackets)  

#Скидка составляет 10% (обозначается символами '{}').

Заключение

F-строки представляют собой мощный инструмент, который может значительно упростить работу с текстом и сделать ваш код более читабельным и лаконичным. Благодаря их гибкости и простоте использования, f-строки стали стандартом форматирования строк в современных версиях Python и являются предпочтительным выбором для большинства программистов по сравнению с более старыми методами, такими как использование метода str.format() или оператора %.

Содержание: