Работа с текстовыми данными: переменные, индексы и форматирование
Практикум по строковому типу данных в Python
Строка в Python представляет собой неизменяемую последовательность Unicode символов. Текст можно записывать в одинарных или двойных кавычках. Большинство строковых методов возвращают новую строку, а исходный объект остаётся без изменений.
Как создать строку, если внутри текста есть кавычки?
name = 'Иван'
message = 'Привет, Иван!'
print(name)
print(message)
text = 'Он сказал: «Python удобен»'
print(text)Python работа с текстом (работа со строками в python)
Иван Привет, Иван! Он сказал: «Python удобен»
note = '''Первая строка
Вторая строка'''
print(note)Первая строка Вторая строка
text = 'День 'яркий'' вызовет SyntaxError, потому что одинаковая кавычка внутри завершает строку раньше предполагаемого момента. Проблема решается переходом на другую пару внешних кавычек или добавлением обратного слеша перед внутренней кавычкой.Как получить символ или фрагмент строки по индексу?
s = 'python'
print(s[0])
print(s[-1])
print(s[2:5])
print(s[:3])
print(s[::2])p n tho pyt pto
word = 'abcde'
print(word[::-1])edcba
s[0] = 'A' приводит к ошибке TypeError. Если требуется изменить отдельный символ, создаётся новая строка, например через метод replace или срезы.Как привести текст к нужному регистру и убрать лишние пробелы?
raw = ' python для начинающих '
s = raw.strip()
print(s)
print(s.lower())
print(s.upper())
print(s.title())python для начинающих python для начинающих PYTHON ДЛЯ НАЧИНАЮЩИХ Python Для Начинающих
a = 'СТРАНА'
b = 'страна'
print(a.casefold() == b.casefold())
print('Привет'.lower())True привет
Как узнать, содержит ли строка подстроку, и где она находится?
text = 'Python помогает с текстом'
print('помогает' in text)
print(text.find('помогает'))
print(text.index('с'))True 7 16
text = 'Python и PYTHON'
print(text.lower().find('python'))
print(text.lower().rfind('python'))0 9
Как заменить часть текста на другую?
text = 'красный цвет, красный шар'
print(text.replace('красный', 'синий'))
print(text.replace('красный', 'синий', 1))синий цвет, синий шар синий цвет, красный шар
filename = 'document_final.txt'
print(filename.removesuffix('.txt'))
print(filename.removeprefix('document_'))document_final final.txt
Как разбить текст на части и объединить их в одну строку?
sentence = 'один два три'
words = sentence.split()
print(words)
print('-'.join(words))['один', 'два', 'три'] один-два-три
data = '2025;Python;работа'
print(data.split(';'))
print(data.split(';', 1))
url = 'site.com/page/image.png'
print(url.rsplit('/', 1))['2025', 'Python', 'работа'] ['2025', 'Python;работа'] ['site.com/page', 'image.png']
Как вставить значения переменных в строку?
name = 'Анна'
age = 29
print(f'Имя: {name}, возраст: {age}')
price = 1234.5
print(f'Итог: {price:.2f} руб.')
print(f'Число: {1024:05d}')Имя: Анна, возраст: 29 Итог: 1234.50 руб. Число: 01024
name = 'Анна'
age = 29
print('Имя: {}, возраст: {}'.format(name, age))
print('{0} {1} {0}'.format('раз', 'два'))Имя: Анна, возраст: 29 раз два раз
Какие методы помогают проверить содержимое строки?
text = '2026'
word = 'город'
mixed = 'abc123'
print(text.isdigit())
print(word.isalpha())
print(mixed.isalnum())
print('hello'.startswith('he'))
print('file.png'.endswith('.png'))True True True True True
space_line = ' '
print(space_line.isspace())
print('123'.isdecimal())True True
Как сравнить две строки между собой?
a = 'Python'
b = 'python'
print(a == b)
print(a.lower() == b.lower())False True
words = ['apple', 'Banana', 'cherry']
print(sorted(words))
print(sorted(words, key=str.lower))['Banana', 'apple', 'cherry'] ['apple', 'Banana', 'cherry']
Перечисленные операции закрывают большинство базовых задач при работе с текстом. Строки остаются неизменяемыми, поэтому каждая операция создаёт новый объект. Это делает код предсказуемым и позволяет безопасно передавать строки между частями программы.
В этом разделе показаны более редкие, но практичные способы применения строковых методов. Каждый пример позволяет увидеть, как работает Python с текстом в нестандартных ситуациях.
Генерация строки из списка чисел
Метод join требует список строк. Поэтому каждый элемент списка чисел сначала преобразуется через str.
numbers = [1, 2, 3]
line = ', '.join(str(x) for x in numbers)
print(line)1, 2, 3
Ограничение числа разбиений
Метод split с параметром maxsplit делит строку только в нескольких первых местах. Это удобно для выделения начальной части и остатка.
date = '2025-06-01'
year, rest = date.split('-', 1)
print(year)
print(rest)2025 06-01
Поиск последнего разделителя
Метод rsplit ищет разделитель с правой стороны. Он удобен при работе с файловыми путями и адресами.
filename = 'archive.tar.gz'
base, ext = filename.rsplit('.', 1)
print(base)
print(ext)archive.tar gz
Разбор строки через partition
Метод partition возвращает кортеж из трёх элементов: часть до разделителя, сам разделитель и часть после него.
url = 'https://example.com/path'
protocol, sep, rest = url.partition('://')
print(protocol)
print(sep)
print(rest)https :// example.com/path
Метод translate для удаления знаков препинания
Функция maketrans создаёт таблицу замен. Пустые строки в аргументах означают, что замены нет, а третий аргумент собирает удаляемые символы.
import string
text = 'Привет, мир! Этот текст...'
clean_text = text.translate(str.maketrans('', '', string.punctuation))
print(clean_text)Привет мир Этот текст
Символьное заполнение полей
Методы rjust, ljust и center дополняют строку до нужной ширины. zfill добавляет нули слева.
value = '7'
print(value.rjust(3, '0'))
print(value.ljust(3, '.'))
print(value.center(5, '-'))
print(value.zfill(5))007 7.. --7-- 00007
Преобразование текста в обратном порядке
Срез с шагом минус единица возвращает строку в обратном порядке. Объединение через join удобно, когда нужно обработать результат reversed.
text = 'Python'
backwards = text[::-1]
print(backwards)
back = ''.join(reversed(text))
print(back)nohtyP nohtyP
Count и in для подсчёта вхождений
Подсчёт количества вхождений выполняется методом count. Эта операция не изменяет исходную строку.
sentence = 'тень, тень, потень'
print(sentence.count('тень'))3
Проверка окончания и начала для маршрутов
Методы startswith и endswith отлично подходят для фильтрации имён файлов, поиска префиксов и обработки URL.
name = 'report_2025.pdf'
print(name.startswith('report_'))
print(name.endswith('.pdf'))
print('https://site.ru/page'.startswith('https://'))True True True
Замена нескольких символов по таблице
Метод translate также заменяет символы по словарю. Ключи словаря должны быть кодами Unicode символов.
trans_dict = {ord('а'): 'a', ord('б'): 'b'}
text = 'аб'
print(text.translate(trans_dict))ab