Строка — тоже последовательность, как список из главы 17, только неизменяемая последовательность символов. Здесь всё, что нужно для практической работы с текстом, вплоть до тем главы 23 про автоматизацию.
Та же логика нулевого индекса и срезов, что уже разбиралась в главе 17 для списков — строка ведёт себя как последовательность символов. Но, как и кортеж (глава 17), строка неизменяема — нельзя заменить один символ на месте, только создать новую строку целиком на основе старой.
| Метод | Что делает |
|---|---|
| .upper() / .lower() | В верхний / нижний регистр |
| .strip() | Убрать пробелы (и переводы строк) по краям |
| .split(разделитель) | Разбить строку на список по разделителю |
| разделитель.join(список) | Собрать список обратно в строку через разделитель |
| .replace(старое, новое) | Заменить все вхождения одной подстроки на другую |
| .find(подстрока) | Позиция первого вхождения подстроки (-1, если не найдена) |
| .startswith() / .endswith() | Проверка начала/конца строки |
Эта пара методов — основа практически любой практической обработки текстовых данных: файл
построчно разбирается через .split() на отдельные поля, а собранный или
отфильтрованный результат снова превращается в текст через .join(). Прямое
применение — скрипты автоматизации в главе 23.
Внутри строки некоторые сочетания символов означают не сами себя, а специальные
"невидимые" символы: \n — перевод строки, \t — табуляция,
\\ — сам символ обратного слэша, \" — кавычка внутри строки в
кавычках того же типа. Это прямое продолжение идеи "управляющих символов" из таблицы ASCII
(глава 03) — символов, не имеющих визуального отображения, но несущих смысл форматирования
текста.
Тройные кавычки (те же, что уже встречались для docstring в главе 16) позволяют написать
строку, буквально занимающую несколько строк текста в самом коде, без явных \n.
Префикс r перед строкой (r"C:\Users\Tariel") отключает
обработку escape-последовательностей — символ \ воспринимается буквально,
а не как начало специальной последовательности. Это особенно удобно именно для путей
Windows (глава 10), где обратный слэш — обычный разделитель пути, а не начало escape-кода
— без r-префикса пришлось бы либо экранировать каждый слэш как
\\, либо переходить на прямые слэши.
Строка в Python 3 внутри программы — это текст в терминах символов Unicode (глава 03), а
не байты напрямую. Когда нужно явно превратить текст в последовательность байтов (например,
для записи в файл или передачи по сети) — метод .encode(), обратное действие —
.decode() у байтовой последовательности:
Это станет практически важным уже в следующей главе, при чтении и записи файлов — файл на диске всегда хранится как байты, и явное или неявное указание кодировки определяет, как именно эти байты превращаются обратно в читаемый текст.
Комбинация .strip() сразу после получения текста (например, из поля ввода или
из строки файла) — одна из самых частых первых операций в практическом коде, убирающая
случайные пробелы и переводы строк, которые почти неизбежно попадают в реальные данные.
Следующая глава — файлы: как читать и записывать реальные данные на диск, применяя сразу и структуры данных из главы 17, и работу с текстом из этой главы.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.