Строки в питоне: функции и методы строк в питоне

онлайн тренажер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Введение

Форматирование строк — один из самых мощных и удобных инструментов языка Python, позволяющий гибко управлять выводом информации. Независимо от того, создаёте ли вы отчёт, лог-файл или пользовательский интерфейс, красиво и правильно оформленный текст играет важную роль. Особенно это важно при работе с числовыми данными, датами, таблицами и многоуровневыми шаблонами.

Правильное форматирование также повышает читаемость кода, облегчает отладку, логирование и отображение результатов в пользовательском интерфейсе. В профессиональной среде форматированные строки часто становятся частью шаблонов, конфигураций и HTML-отчётов.

Python предлагает три основных подхода к форматированию строк:

  1. f-строки (f-strings, с версии Python 3.6)

  2. Метод .format()

  3. Старый стиль — % форматирование (устаревающий, но всё ещё используется)

В этой статье мы разберем каждый из них, уделим особое внимание f-строкам как наиболее читаемому и быстрому способу. Также рассмотрим форматирование чисел (дробных, процентов, экспонент), работу с выравниванием, шаблонами и реальными кейсами из жизни разработчика. Мы покажем, как комбинировать различные методы и использовать их для генерации текстов любой сложности.


f-строки: самый современный способ

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

f-строки появились в Python 3.6 и стали настоящим прорывом по удобству и читаемости. Это литералы строк, начинающиеся с буквы f перед кавычками, в которых можно вставлять переменные и выражения прямо внутри фигурных скобок {}.

name = "Иван"
age = 30
print(f"Привет, меня зовут {name}, мне {age} лет.")

Вы можете использовать не только переменные, но и любые допустимые Python-выражения:

print(f"Через 5 лет мне будет {age + 5} лет.")

Также можно вызывать функции:

def square(x):
    return x * x
print(f"Квадрат числа 4: {square(4)}")

Форматирование чисел

f-строки поддерживают встроенное форматирование:

pi = 3.1415926
print(f"Число Пи с двумя знаками: {pi:.2f}")  # 3.14
Синтаксис Назначение
:.2f два знака после запятой (float)
:,.2f с разделителем тысяч
:e экспоненциальная форма
:% процентное представление
:>10 выравнивание вправо по ширине 10
:<10 выравнивание влево по ширине 10
:^10 по центру

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

Форматирование строк также позволяет красиво выравнивать данные:

value = 42
print(f"|{value:<10}| {value:^10} | {value:>10}|")

Форматирование как шаблонизация

f-строки позволяют вставлять данные из словарей, списков и объектов:

user = {"name": "Анна", "balance": 1234.567}
print(f"{user['name']}, ваш баланс: {user['balance']:.2f} руб.")

Метод .format(): универсальный и гибкий

Метод .format() позволяет вставлять переменные в строку по позициям или именам:

template = "Привет, {0}. У тебя {1} новых сообщений."
print(template.format("Оля", 5))

Именованные аргументы:

print("{name} учится в {university}".format(name="Вася", university="МГУ"))

Выравнивание и числа

print("{:>10.2f}".format(123.4567))  # '    123.46'

Форматирование словарей и объектов

Можно передавать словари напрямую:

data = {"product": "Ноутбук", "price": 58990.9}
print("{product}: {price:.2f} руб.".format(**data))

Старый стиль (%-форматирование)

Этот стиль пришёл из языка C и используется по сей день в старых проектах.

name = "Петя"
score = 95.5
print("%s набрал %.1f баллов" % (name, score))

Основные спецификаторы

Спецификатор Значение
%s Строка
%d Целое число
%f Float
%.2f Float с 2 знаками

Не рекомендуется для новых проектов, но полезно знать для поддержки старого кода.


Форматирование чисел в Python

Десятичные дроби и округление

number = 1234.56789
print(f"{number:.2f}")  # 1234.57

Также можно использовать round():

rounded = round(number, 3)

Разделители тысяч

price = 1050000
print(f"{price:,}")  # 1,050,000

Для вывода в другом формате можно заменить запятую на пробел или точку через .replace().

Формат процентов

ratio = 0.875
print(f"Процент: {ratio:.2%}")  # 87.50%

Экспоненциальная форма

mass = 0.000056
print(f"Масса: {mass:.2e}")  # 5.60e-05

Выравнивание, ширина и табличное форматирование

items = [("Яблоки", 25.5), ("Бананы", 40.1), ("Апельсины", 58.39)]
for name, price in items:
    print(f"{name:<12} | {price:>8.2f} руб.")

Результат:

Яблоки      |    25.50 руб.
Бананы      |    40.10 руб.
Апельсины   |    58.39 руб.

Можно использовать таблицы в Markdown или HTML для генерации отчётов.


Форматирование текста

Методы строк для работы с регистрами:

  • .capitalize() — первая буква заглавная

  • .title() — каждое слово с заглавной буквы

  • .upper() / .lower() — перевод в верхний/нижний регистр

  • .center(width, fillchar) — выравнивание по центру с символом-заполнителем

text = "python"
print(text.upper())         # PYTHON
print(text.center(10, "-")) # --python--

Кейс: Генерация HTML с f-строками

title = "Привет мир"
body = "Это абзац текста."
html = f"""
<html>
  <head><title>{title}</title></head>
  <body><p>{body}</p></body>
</html>
"""
print(html)

Этот приём особенно полезен для шаблонов писем, отчетов, веб-страниц.


Производительность: f-строки быстрее всех

import timeit

name = "Alice"

# f-string
print(timeit.timeit('f"Hello {name}"', globals=globals()))

# format()
print(timeit.timeit('"Hello {}".format(name)', globals=globals()))

# %
print(timeit.timeit('"Hello %s" % name', globals=globals()))

На практике f-строки не только быстрее, но и значительно понятнее. Это важно для читаемости кода в командах.


Заключение

Форматирование строк в Python — это гораздо больше, чем просто вставка значений. Это способ создать читаемый, точный и управляемый вывод информации. f-строки — современный стандарт, рекомендованный для большинства задач. Метод .format() полезен при динамическом форматировании или шаблонах, а % следует использовать лишь в устаревших системах.

Форматируйте строки грамотно — это сделает ваш код понятным, интерфейс — опрятным, а данные — наглядными. Это навык, который стоит прокачивать и использовать ежедневно.


FAQ

Что лучше использовать: f-строки или .format()?
Рекомендуются f-строки — они читаемее и быстрее.

Как округлить число до 3 знаков?
f"{value:.3f}"

Как вывести процент?
f"{ratio:.2%}" — умножит значение на 100 и добавит %.

Как сделать таблицу из строк?
С помощью выравнивания: f"{value:<10}"

А если Python < 3.6?
Используйте .format() — он работает с Python 2.7+

Новости