Яндекс.Метрика
Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Статьи

Работа со строками в Python: операции

26 января 2023·Обновлено 24 августа 2026·7 мин чтения
Дмитрий Лукьянов
Автор материалаДмитрий ЛукьяновBackend-разработчик, YuSMP Group
Профиль автора
Работа со строками в Python: операции

Методы строк 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().

Нужны разработчики в команду?

Подберём инженеров нужного стека под ваш проект — быстрый старт.

Обсудить команду