
f-строки (или форматированные строки) – один из наиболее удобных и мощных способов форматирования текста в Python. С момента их появления в версии 3.6, они значительно упростили процесс вставки значений переменных в строку, улучшив читаемость и производительность кода.
Для создания f-строки достаточно поставить букву «f» перед строкой, а выражения, которые нужно подставить, обрамить фигурными скобками. Например:
name = "Анна"
age = 25
print(f"Меня зовут {name}, и мне {age} лет.")
В результате будет выведено: Меня зовут Анна, и мне 25 лет.
Основное преимущество f-строк – их гибкость. Внутри фигурных скобок можно использовать любые выражения, включая арифметические операции, вызовы функций и даже условия. Например:
x = 10
y = 20
print(f"Сумма {x} и {y} равна {x + y}.")
Это выведет: Сумма 10 и 20 равна 30.
Для форматирования чисел можно задать точность, разделители и ширину поля. Например:
pi = 3.141592653589793
print(f"Число Пи с точностью до 3 знаков: {pi:.3f}")
Результат: Число Пи с точностью до 3 знаков: 3.142
В этом примере используется спецификатор формата .3f, который округляет число до 3 знаков после запятой. Такие спецификаторы можно использовать для различных типов данных: чисел с плавающей запятой, целых чисел, строк и других объектов.
Другим полезным инструментом является использование ширины поля. Например:
value = 123
print(f"Значение с шириной 10: {value:10}")
Это выведет: Значение с шириной 10: 123
В данном случае число будет выведено с дополнительными пробелами слева, чтобы занять 10 позиций в строке.
f-строки также поддерживают более сложные выражения. Например, можно выполнять арифметику или работать с объектами:
from datetime import datetime
now = datetime.now()
print(f"Текущая дата и время: {now:%Y-%m-%d %H:%M:%S}")
Результат: Текущая дата и время: 2025-05-06 14:35:22
Здесь мы используем формат даты и времени, задав его через спецификатор %Y-%m-%d %H:%M:%S.
При использовании f-строк важно учитывать, что они обеспечивают максимальную производительность при сравнении с другими методами форматирования, такими как str.format() и операторы %.
Поддержка f-строк также делает код более читаемым и компактным, что особенно важно при работе с большим количеством данных или сложными выражениями в строках.
Форматирование чисел с заданной точностью

Наиболее распространённым способом является использование встроенных форматов. Пример:
f"{число:.nf}"
Здесь n – это количество знаков после запятой. Например:
число = 3.1415926535
print(f"{число:.3f}") # Выведет: 3.142
При этом Python автоматически округляет число до указанной точности. Этот метод удобен и читаем, но требует внимательности, чтобы не потерять важные данные при округлении.
Другой метод – использование функции format()
. Это также эффективный способ:
число = 3.1415926535
print("{:.4f}".format(число)) # Выведет: 3.1416
Помимо обычных чисел, важно учитывать форматирование чисел с плавающей точкой в научной нотации. Для этого используется формат e. Например:
число = 0.000123456
print(f"{число:.3e}") # Выведет: 1.235e-04
Для чисел с фиксированной шириной и точностью можно использовать спецификаторы. Например, следующий код:
число = 3.14159
print(f"{число:10.3f}") # Выведет: ' 3.142'
Здесь число будет выведено с точностью до 3 знаков после запятой и выровнено по правому краю на 10 позиций.
Кроме того, стоит отметить использование модификаторов, таких как +, чтобы принудительно показывать знак числа:
число = -3.14159
print(f"{число:+.2f}") # Выведет: -3.14
Для более сложных случаев, когда нужно форматировать числа с учётом их значимости и точности, можно использовать decimal или сторонние библиотеки, чтобы избежать ошибок округления и потери данных при вычислениях с высокой точностью.
Использование правильных форматов и контроль точности – важная часть работы с числами в Python, особенно в области научных вычислений и финансовых приложений, где каждая цифра имеет значение.
Использование f-строк позволяет задавать выравнивание колонок прямо в строках формата. Внутри фигурных скобок можно указать спецификатор выравнивания. Например, `<` – для выравнивания по левому краю, `>` – по правому, и `^` – по центру. Дополнительно можно задать ширину столбца, добавив число после символа выравнивания. Пример:

data = [("Имя", "Возраст", "Город"),
("Алексей", 25, "Москва"),
("Мария", 30, "Питер"),
("Иван", 22, "Новосибирск")]
for row in data:
print(f"{row[0]:<15} {row[1]:>10} {row[2]:^15}")
В этом примере первый столбец выравнивается по левому краю, второй – по правому, а третий – по центру. Ширина каждого столбца определена значением после двоеточия.
Метод `.format()` также позволяет выравнивать данные. Вместо f-строк можно использовать более универсальный подход с форматированием через индексы или имена переменных. Пример:
for row in data:
print("{:<15} {:>10} {:^15}".format(row[0], row[1], row[2]))
Здесь применяются те же принципы выравнивания, что и в предыдущем примере, но форматирование делается через метод `.format()`, что полезно, если нужно работать с динамическими данными или передавать переменные в формате строки.
Для выравнивания по правому краю можно использовать и отрицательные числа, например, при форматировании чисел. Это удобно, если вы хотите, чтобы денежные суммы или числа в таблице имели одинаковое количество символов перед запятой.
prices = [("Товар1", 99), ("Товар2", 1200), ("Товар3", 45)]
for item in prices:
print(f"{item[0]:<15} {item[1]:>10}")
Если же нужно выровнять данные по столбцам с дополнительными пробелами или вставить специальные символы (например, для чисел с десятичными знаками), можно использовать дополнительные опции в формате:
for item in prices:
print(f"{item[0]:<15} {item[1]:>10,.2f}")
В этом случае числа будут выведены с двумя знаками после запятой и разделением тысячных разрядов запятой.
Также важно учитывать, что для создания таблиц с выравниванием колонок можно использовать методы округления и форматирования чисел в зависимости от типа данных (например, целые числа или дробные). Задача выравнивания данных в таблице сводится к комбинации этих инструментов для точного и эстетически приятного представления информации.
1. Использование пробела с помощью f-строк: Один из простых способов добавить пробелы между элементами – это включение их в строку через f-строки. Например:
name = "Иван"
age = 25
print(f"{name} {age}")
Здесь между значениями будет выведено несколько пробелов, что позволяет контролировать расстояние между ними.
2. Метод `join()`: Если требуется добавить одинаковое количество пробелов или других символов между множеством элементов, можно использовать метод `join()`. Это особенно полезно, когда нужно собрать строку из списка данных:
elements = ["Иван", "25", "Москва"]
print(" ".join(elements))
Этот способ позволяет вставить произвольное количество пробелов между каждым элементом списка.
3. Использование `str.ljust()` и `str.rjust()` для выравнивания: Для выравнивания строк по левому или правому краю с добавлением пробелов используется методы `ljust()` и `rjust()`. Они помогут добавить отступы до или после строк, что полезно при форматировании таблиц или структурированных данных:
print("Имя".ljust(10), "Возраст".rjust(5))
print("Иван".ljust(10), "25".rjust(5))
В данном примере строки будут выровнены, добавляя пробелы в нужные места.
4. Добавление отступов с использованием `\t` (табуляция): Символ табуляции `\t` позволяет вставить отступы, которые могут быть полезны для улучшения читаемости, особенно в структурированных данных:
print("Имя\tВозраст")
print("Иван\t25")
5. Собственный формат через f-строки с ограничениями на ширину: Использование форматов внутри f-строк позволяет задать точную ширину для каждого элемента. Пример:
print(f"{name:<10} {age:>5}")
Здесь `<10` и `>5` указывают на минимальную ширину для каждого элемента, добавляя пробелы с левой или правой стороны, чтобы обеспечить выравнивание.
6. Метод `format()`: Помимо f-строк, для добавления пробелов можно использовать метод `format()`. Он позволяет гибко вставлять пробелы и отступы между аргументами:
print("{:<10} {:>5}".format(name, age))
Здесь также задается минимальная ширина для каждого элемента, при этом пробелы добавляются в зависимости от формата.
Форматирование строк с использованием метода.format()

Метод str.format() в Python предоставляет гибкий способ вставки значений в строки. Он позволяет вставлять переменные или выражения в строку, используя специальные маркеры в виде фигурных скобок {}. Это более мощный и удобный инструмент, чем старый способ с использованием оператора %.
Основной синтаксис метода следующий: "строка {}".format(значение). Внутри фигурных скобок могут быть не только простые индексы, но и выражения, что дает возможность гибко управлять форматированием. Например:
name = "Алексей"
greeting = "Привет, {}!".format(name)
print(greeting) # Привет, Алексей!
Можно передавать несколько аргументов в метод format(), и они будут вставлены в соответствующие места в строке:
age = 30
city = "Москва"
info = "Возраст: {}, Город: {}".format(age, city)
print(info) # Возраст: 30, Город: Москва
Кроме того, можно использовать именованные аргументы, что делает код более читаемым:
info = "Возраст: {age}, Город: {city}".format(age=30, city="Москва")
print(info) # Возраст: 30, Город: Москва
pi = 3.14159265359
formatted = "Число Пи: {:.2f}".format(pi)
print(formatted) # Число Пи: 3.14
info = "{1} - это город в {0}".format("Россия", "Москва")
print(info) # Москва - это город в Россия
Кроме того, доступна возможность использовать форматирование с выравниванием, заполнением пробелами или другими символами. Например:
name = "Иван"
formatted = "|{:^10}|".format(name)
print(formatted) # | Иван |
Каждый спецификатор в строке формата соответствует определённой части даты или времени. Например, %Y – это четырёхзначный год, а %d – день месяца. Рассмотрим некоторые из них:
%Y – год с четырьмя цифрами (например, 2025).
%m – месяц в числовом формате с ведущим нулём (например, 05 для мая).
%d – день месяца с ведущим нулём (например, 06).

%H – часы в 24-часовом формате с ведущим нулём (например, 09).
%M – минуты с ведущим нулём (например, 03).
%S – секунды с ведущим нулём (например, 07).
Пример: если у вас есть объект datetime и вам нужно вывести дату в формате "день.месяц.год", можно использовать следующий код:
import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%d.%m.%Y")
print(formatted_date)
formatted_time = now.strftime("%H:%M:%S")
print(formatted_time)
formatted_full = now.strftime("%Y, %d %B, %H:%M:%S")
print(formatted_full)
Для работы с часами в 12-часовом формате можно использовать %I для часов и %p для AM/PM. Пример:
formatted_time_12hr = now.strftime("%I:%M:%S %p")
print(formatted_time_12hr)
formatted_day = now.strftime("%A, %d %B %Y")
print(formatted_day)
Использование этих спецификаторов позволяет создавать более читаемые и легко воспринимаемые строки с датой и временем, соответствующие потребностям конкретной задачи или локализации.
