Методы строк Python — одни из самых востребованных инструментов в языке. Неважно, откуда берётся текст — из пользовательского ввода, файлов или базы данных — строковые операции занимают значительную часть любого бэкенд-проекта.
В блоге студии web-разработки YuSMP Group собрали таблицу-шпаргалку по ключевым методам и разобрали каждый с примерами кода.
Что такое строка в Python
Строка — это неизменяемая последовательность символов, заключённая в кавычки (одинарные или двойные). Это один из наиболее часто используемых типов данных в программировании. Строки в Python неизменяемы: методы не меняют исходный объект, а всегда возвращают новый.
s = "Привет, мир"
s2 = 'Hello, World'
Таблица ключевых методов строк Python
| Метод | Синтаксис | Что делает |
|---|---|---|
upper() | s.upper() | Переводит все символы в верхний регистр |
lower() | s.lower() | Переводит все символы в нижний регистр |
strip() | s.strip() | Удаляет пробелы по краям строки |
lstrip() | s.lstrip() | Удаляет пробелы только слева |
rstrip() | s.rstrip() | Удаляет пробелы только справа |
split() | s.split(sep) | Разбивает строку по разделителю, возвращает список |
join() | sep.join(lst) | Объединяет список строк через указанный разделитель |
replace() | s.replace(old, new) | Заменяет вхождения подстроки |
find() | s.find(sub) | Индекс первого вхождения; -1 если не найдено |
index() | s.index(sub) | Аналог find(), но бросает ValueError при отсутствии |
count() | s.count(sub) | Количество вхождений подстроки |
startswith() | s.startswith(p) | Проверяет, начинается ли строка с префикса |
endswith() | s.endswith(sf) | Проверяет, заканчивается ли строка суффиксом |
str() | str(obj) | Преобразует число или объект в строку |
len() | len(s) | Длина строки (встроенная функция) |
format() | "{}".format(v) | Форматирует строку, подставляя значения |
Объединить строки
При программировании очень часто требуется конкатенация строк. Представьте: пользователь вводит имя и фамилию в отдельные поля, а вы храните их в разных переменных.
first_name = "Иван"
last_name = "Петров"
full_name = first_name + " " + last_name
# "Иван Петров"
Знак + для строк выполняет конкатенацию, а не сложение. Оператор += позволяет дополнять строку в цикле:
result = ""
for word in ["Python", "методы", "строк"]:
result += word + " "
Функция join()
Метод join() эффективнее + при сборке строки из списка: он создаёт ровно один строковый объект вместо цепочки промежуточных.
words = ["Hello", "World"]
result = " ".join(words)
# "Hello World"
chars = ['H', 'e', 'l', 'l', 'o']
s = ''.join(chars)
# "Hello"
Разделить строку
Метод split() разбивает строку на части и возвращает список. По умолчанию разделитель — любой пробельный символ.
name = "Иван Петров"
parts = name.split(" ")
first = parts[0] # "Иван"
last = parts[1] # "Петров"
Метод splitlines() разбивает многострочный текст по символу переноса — удобно при разборе файлов и API-ответов.
Преобразовать число в строку
Функция str() преобразует любой объект в его строковое представление.
price = 9999
text = str(price) # "9999"
pi = str(3.14) # "3.14"
Обратное преобразование — через int() или float():
n = int("42") # 42
f = float("3.14") # 3.14
По умолчанию str() использует кодировку UTF-8. Передав вторым аргументом схему ошибок (например, 'ignore' или 'replace'), можно управлять поведением при некорректных символах.
Найти подстроку или символ
Метод find() возвращает индекс первого вхождения или -1, если ничего не найдено. Метод index() работает так же, но при отсутствии бросает ValueError — выбор зависит от того, нужна ли явная обработка ошибки.
email = "user@example.com"
pos = email.find("@") # 4
miss = email.find("!") # -1
Для проверки вхождения без позиции — оператор in:
if "@" in email:
print("Формат корректен")
Метод count() считает количество вхождений подстроки:
s = "banana"
s.count("a") # 3
Заменить символы или подстроки
Метод replace() возвращает новую строку с заменёнными вхождениями. Первый аргумент — заменяемый фрагмент, второй — то, на что заменяем.
s = "Hello World"
s2 = s.replace("World", "Python")
# "Hello Python"
s3 = s.replace("o", "0")
# "Hell0 W0rld"
Третий необязательный аргумент count ограничивает количество замен:
s.replace("o", "0", 1)
# "Hell0 World" — заменяется только первое вхождение
Регистр, пробелы и форматирование
Типичные задачи при обработке пользовательского ввода: привести к нижнему регистру, убрать лишние пробелы и проверить начало или конец строки.
user_input = " Python "
clean = user_input.strip() # "Python"
lower = clean.lower() # "python"
upper = clean.upper() # "PYTHON"
url = "https://example.com"
url.startswith("https") # True
url.endswith(".com") # True
Для подстановки переменных используйте f-строки (Python 3.6+) или метод format():
name = "Иван"
age = 30
msg = f"Привет, {name}! Тебе {age} лет."
# или
msg = "Привет, {}! Тебе {} лет.".format(name, age)
Нарезка строк (slicing)
Срез позволяет извлечь подстроку по диапазону индексов. Синтаксис: s[start:end:step].
s = "Hello, World"
s[0:5] # "Hello"
s[7:] # "World"
s[-5:] # "World"
s[::-1] # "dlroW ,olleH" (реверс)
Что важно запомнить
Строки в Python неизменяемы: ни один метод не меняет исходный объект, а возвращает новую строку. В циклах накопление через + медленнее, чем join(), поскольку каждый + создаёт новый объект. Встроенные методы покрывают большинство задач; для сложных паттернов используйте модуль re (регулярные выражения).
Разработка на Python и других языках в YuSMP Group — от анализа требований до поддержки на проде. Посмотрите реализованные проекты: наша команда поможет реализовать любую технологичную идею.
Частые вопросы
Чем отличается find() от index() в Python?
Оба метода ищут подстроку и возвращают её позицию. Разница: find() возвращает -1, если подстрока не найдена; index() в том же случае бросает ValueError. Выбирайте find(), когда отсутствие — нормальная ситуация, и index(), когда хотите явно обработать ошибку через try/except.
Как объединить список строк в одну строку в Python?
Используйте метод join(): " ".join(["Python", "методы", "строк"]) вернёт "Python методы строк". Это эффективнее конкатенации через + в цикле — join() создаёт ровно один строковый объект.
Как проверить, содержит ли строка подстроку в Python?
Самый лаконичный способ — оператор in: if "@" in email. Если нужна позиция вхождения — используйте find() или index().
Как удалить пробелы в начале и конце строки?
Метод strip() удаляет пробелы и символы переноса строки с обоих концов. lstrip() — только слева, rstrip() — только справа. Пример: " hello ".strip() возвращает "hello".
Как отформатировать строку с переменными в Python?
Современный способ (Python 3.6+) — f-строки: f"Привет, {name}!". Альтернативы: метод format() — "Привет, {}!".format(name) — и %-форматирование. F-строки быстрее и читаемее остальных вариантов.
Можно ли изменить отдельный символ в строке Python?
Нет — строки неизменяемы. Чтобы «изменить» символ, создайте новую строку: через срезы s[:2] + "X" + s[3:] или метод replace().
Нужны разработчики в команду?
Подберём инженеров нужного стека под ваш проект — быстрый старт.




