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

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

В предыдущих уроках мы работали с числами. Но большинство программ взаимодействуют с текстом: сохраняют имена пользователей, выводят сообщения, обрабатывают данные из файлов. Для текстовых данных в Python существует тип str (от string — «строка»).

Что такое строка

Строка — это последовательность символов, заключённая в кавычки. Python принимает оба варианта — одинарные и двойные:

greeting = "Привет, мир!"
name = 'Алиса'
empty = ""   # пустая строка — тоже строка

Оба варианта равнозначны. На практике используйте тот, который удобнее в данном контексте. Если внутри строки нужна кавычка того же типа — придётся экранировать или использовать другой вид кавычек:

quote1 = "Он сказал: 'Привет!'"     # двойные снаружи, одинарные внутри
quote2 = 'Она ответила: "Здравствуй!"'  # одинарные снаружи, двойные внутри

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

Для длинных текстов, которые занимают несколько строк, Python предоставляет тройные кавычки — """...""" или '''...''':

poem = """
Белеет парус одинокий
В тумане моря голубом.
"""

address = '''Москва,
ул. Пушкина,
д. 10'''

Переносы строк внутри тройных кавычек сохраняются как есть, включая начальный перенос строки после """.

Длина строки: функция len()

Встроенная функция len() возвращает количество символов в строке:

word = "Python"
print(len(word))      # 6

message = "Привет!"
print(len(message))   # 7 (6 букв + 1 восклицательный знак)

print(len(""))        # 0 — пустая строка

Пробелы и знаки препинания тоже считаются символами.

Конкатенация и повторение

Оператор + для строк означает конкатенацию — склеивание строк в одну:

first = "Hello"
second = "World"
result = first + ", " + second + "!"
print(result)   # Hello, World!

Оператор * позволяет повторить строку несколько раз:

line = "-" * 30
print(line)   # ------------------------------

greeting = "Эхо! " * 3
print(greeting)   # Эхо! Эхо! Эхо!

Важно: нельзя складывать строку с числом через + — это вызовет TypeError. Python не знает, что именно вы хотите: преобразовать число в строку или строку в число. Нужно делать это явно — мы разберём преобразование типов в одном из следующих уроков этого модуля.

age = 25
# print("Мне " + age + " лет")  # TypeError!
print("Мне " + str(age) + " лет")  # правильно: 'Мне 25 лет'

Спецсимволы

Некоторые символы нельзя вписать в строку напрямую — для них используются escape-последовательности, начинающиеся с обратного слеша \:

ПоследовательностьСмысл
\nперевод строки
\tтабуляция
\\обратный слеш
\"двойная кавычка внутри строки в двойных кавычках
\'одинарная кавычка внутри строки в одинарных кавычках
print("Строка 1\nСтрока 2")
# Строка 1
# Строка 2

print("Колонка 1\tКолонка 2")
# Колонка 1    Колонка 2

path = "C:\\Users\\Alice"   # двойной слеш в Windows-пути
print(path)   # C:\Users\Alice

Сырые строки (raw strings)

Если нужно записать строку буквально, без обработки escape-последовательностей, используйте префикс r:

pattern = r"\n не перенос строки, а два символа"
path = r"C:\Users\Alice\Desktop"
print(path)   # C:\Users\Alice\Desktop (слеши сохранены)

Сырые строки особенно полезны при работе с регулярными выражениями и путями к файлам на Windows.

F-строки: форматирование текста

Один из самых мощных инструментов для работы со строками в Python — f-строки (f-string, format string). Они появились в Python 3.6 и стали стандартом для форматирования текста.

F-строка — это обычная строка с префиксом f перед кавычкой. Внутри таких строк можно вставлять выражения Python в фигурных скобках {}:

name = "Алиса"
age = 25
city = "Москва"

greeting = f"Привет, {name}! Тебе {age} лет, ты из {city}."
print(greeting)
# Привет, Алиса! Тебе 25 лет, ты из Москвы.

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

a = 10
b = 3
print(f"{a} + {b} = {a + b}")      # 10 + 3 = 13
print(f"{a} / {b} = {a / b:.2f}")  # 10 / 3 = 3.33

Конструкция :.2f внутри {} — это спецификатор формата: вывести как дробное число с двумя знаками после точки. Некоторые распространённые форматы:

СпецификаторСмыслПример
:.2ffloat с 2 знакамиf"{3.14159:.2f}"'3.14'
:dцелое числоf"{42:d}"'42'
:>10выравнивание вправо в поле 10 символовf"{'слово':>10}"
:,разделитель тысячf"{1000000:,}"'1,000,000'

F-строки предпочтительнее старых методов конкатенации ("Привет, " + name) и str.format(). Они читаемее, быстрее и поддерживают полный синтаксис выражений Python.

Проверь себя

Что выведет этот код?

x = 7
y = 3
print(f"{x} делится на {y} с остатком {x % y}")

Выражение x % y — это 7 % 3 = 1. Результат: 7 делится на 3 с остатком 1.

Итог

  • Строка (str) — последовательность символов в одинарных, двойных или тройных кавычках.
  • len() возвращает длину строки; + склеивает строки; * повторяет.
  • Нельзя складывать строку и число через + без явного преобразования.
  • Escape-последовательности (\n, \t, \\) вставляют специальные символы; сырые строки r"..." отключают их обработку.
  • F-строки (f"...") — современный и читаемый способ вставлять значения переменных и выражений в текст.
  • Спецификаторы формата вроде :.2f управляют представлением чисел внутри f-строк.

В следующем уроке разберём ещё два важных типа данных: логические значения bool (True / False) и специальное значение None.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике