Урок 7. Строки
Строка — это текст: имя, предложение, содержимое файла. В Python строка — значение типа str, записанное в кавычках. Со строками приходится работать почти в каждой программе, поэтому у них много готовых возможностей.
Кавычки и спецсимволы
Строку можно взять в двойные или одинарные кавычки. Если внутри текста есть кавычки одного вида, снаружи ставят другие. Для текста в несколько строк — тройные кавычки """…""".
Внутри строки обратная косая черта \ начинает спецсимвол: \n — перевод строки, \t — табуляция, \\ — сама косая черта, \" — кавычка.
print("Первая строка\nВторая строка")
print('Книга "Python для всех"')
print("Путь: C:\\Users")
text = """Можно писать
в несколько строк"""
print(text)Первая строка
Вторая строка
Книга "Python для всех"
Путь: C:\Users
Можно писать
в несколько строкИз-за спецсимволов пути Windows в обычной строке ломаются: в "C:\new" сочетание \n станет переводом строки. Перед такой строкой ставят букву r — r"C:\new", тогда \ остаётся обычным знаком. Или пишут прямую косую: "C:/new" — Windows понимает и её.
Длина, индексы, срезы
Строка устроена как список букв: у каждой буквы есть индекс с нуля, работают отрицательные индексы и срезы.
s = "Беларусь"
print(len(s))
print(s[0])
print(s[-1])
print(s[0:4])
print(s[::-1])8
Б
ь
Бела
ьсуралеБ[::-1] — строка задом наперёд. Об этом и других способах — в справке Как перевернуть строку.
Строку нельзя изменить
В отличие от списка, строку нельзя поменять по индексу: s[0] = "б" даёт ошибку TypeError: 'str' object does not support item assignment. Вместо этого составляют новую строку:
s = "минск"
s = s[0].upper() + s[1:]
print(s)МинскМетоды строк
Метод — функция, которая принадлежит значению и вызывается через точку: s.upper(). Самые нужные:
| Метод | Что делает |
|---|---|
s.upper(), s.lower() | все буквы большие, все маленькие |
s.strip() | убирает пробелы и переводы строк по краям |
s.replace(a, b) | заменяет каждое a на b |
s.split() | режет строку на слова, получается список |
s.find(a) | индекс первого вхождения a или −1, если его нет |
s.count(a) | сколько раз a встречается в строке |
s.startswith(a), s.endswith(a) | начинается ли строка с a, заканчивается ли на a |
s.isdigit() | состоит ли строка только из цифр |
s = " Привет, Мир! "
print(s.strip())
print(s.strip().upper())
print(s.strip().lower())
print(s.replace("Мир", "Python").strip())
print(s.count("и"))
print(s.find("Мир"))Привет, Мир!
ПРИВЕТ, МИР!
привет, мир!
Привет, Python!
2
10Методы не меняют строку, а возвращают новую. Строка s.upper() сама по себе ничего не сделает с s — результат нужно сохранить: s = s.upper().
split и join
split режет строку на части и возвращает список. С пустыми скобками режет по пробелам, а со знаком в скобках — по этому знаку: split("."). join делает обратное: склеивает список строк через разделитель.
line = "Минск Брест Гродно"
cities = line.split()
print(cities)
print(len(cities))
print(", ".join(cities))
date = "05.11.2026"
day, month, year = date.split(".")
print(year)['Минск', 'Брест', 'Гродно']
3
Минск, Брест, Гродно
2026join склеивает только строки: список чисел сначала переводят в строки, например " ".join(map(str, nums)).
Поиск и перебор букв
Оператор in проверяет, есть ли кусок текста в строке: "Мир" in s. Цикл for проходит строку по буквам. Пример — сколько гласных в набранной фразе:
text = input()
vowels = "аеёиоуыэюя"
count = 0
for ch in text.lower():
if ch in vowels:
count += 1
print(count)Привет, Мир3lower() нужен, чтобы большие буквы тоже нашлись в строке vowels.
Склейка и f-строки
Строки склеивают знаком +, повторяют знаком *. Число к строке напрямую не прибавить — его переводят функцией str. Удобнее всего f-строка: перед кавычкой ставят букву f, а значения подставляют в фигурных скобках.
name = "Аня"
age = 15
print("Имя: " + name + ", возраст: " + str(age))
print(f"{name} — {age} лет")
price = 2.5
print(f"Цена: {price * 3:.2f} руб.")
print("-" * 20)Имя: Аня, возраст: 15
Аня — 15 лет
Цена: 7.50 руб.
--------------------:.2f после значения — «два знака после точки». Все возможности — в справке f-строки и форматирование вывода.
Сравнение строк
Строки сравниваются == и != с учётом регистра: "Минск" == "минск" — False. Чтобы не зависеть от регистра, обе строки приводят к одному виду: a.lower() == b.lower(). Знаки < и > сравнивают строки по алфавиту, точнее — по кодам букв, поэтому все большие буквы идут раньше маленьких, а «ё» стоит после «я».
Коротко
- Строка — текст в кавычках;
\n— перевод строки; для путей Windows —r"…". - Индексы и срезы как у списка:
s[0],s[-1],s[1:4],s[::-1];len(s)— длина. - Строку нельзя изменить по индексу; методы возвращают новую строку.
strip,lower,upper,replace,split,join,find,count— основные методы.- f-строка
f"{x}"подставляет значения;{x:.2f}— два знака после точки.