Строки и 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 внутри {} — это спецификатор формата: вывести как дробное число с двумя знаками после точки. Некоторые распространённые форматы:
| Спецификатор | Смысл | Пример |
|---|---|---|
:.2f | float с 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.