ДОПОЛНИТЕЛЬНОЕ.ЗАДАНИЕ
Определите, сколько уникальных температур содержит список. Итоги
Списки и кортежи — структуры, воплощающие идею последовательности эле-ментов (например, строки).
Списки похожи на массивы других языков программирования, но они поддер-живают автоматическое изменение размеров, синтаксис сегментов и различные вспомогательные функции.
Кортежи похожи на списки, но они не могут изменяться, поэтому они расходуют меньше памяти и могут использоваться в качестве ключей словаря (глава 7). Множества представляют собой итерируемые коллекции, но они не упорядочены
и не могут содержать повторяющиеся элементы.
6 Строки
Эта глава охватывает следующие темы:
3 Строки как последовательности символов
3 Использование основных операций со строками
3 Вставка специальных символов и экранированных последовательностей 3 Преобразование из объектов в строки
3 Форматирование строк
3 Использование типа byte
Обработка текста — от пользовательского ввода и имен файлов до фрагментов текста — относится к числу типичных задач программирования. В языке Python реализованы мощные инструменты обработки и форматирования текста. В этой главе рассматриваются стандартные строки и строковые операции в Python.
6.1. Строки как последовательности символовВ контексте извлечения символов и подстрок строки могут рассматриваться как последовательности символов, что означает, что с ними можно использовать ин-дексы и синтаксис сегментов:
>>> x = "Hello"
>>> x[0]
'H'
>>> x[-1]
'o'
>>> x[1:]
'ello'
В частности, синтаксис сегментов часто применяется для отсечения символа новой строки в конце строки (обычно только что прочитанной из файла):
>>> x = "Goodbye\n"
>>> x = x[:-1]
>>> x
'Goodbye'
Этот код приведен всего лишь для примера. У строк Python есть другие, более удобные методы отсечения нежелательных символов, а этот пример демонстрирует полезность сегментов.
Чтобы определить, сколько символов содержит строка, можно воспользоваться функцией len — точно так же, как для определения количества элементов в списке: >>> len("Goodbye")
7
Однако строки не являются списками символов. Самое принципиальное разли-чие между строками и символами заключается в том, что, в отличие от списков, строки не могут изменяться . При попытке использовать выражение вида string. append('c') или string[0] = 'H' произойдет ошибка. Из предыдущего примера видно, что для отсечения символа новой строки создается строка, которая являет-ся сегментом предыдущей, а не прямой модификацией предыдущей строки. Это базовое ограничение Python, установленное по соображениям эффективности.
6.2. Основные операции со строкамиПростейший (и пожалуй, самый распространенный) способ объединения строк Python основан на использовании оператора конкатенации строк + : >>> x = "Hello " + "World"
>>> x
'Hello World'
В Python также существует аналогичный оператор умножения строк, который иногда (но не так часто) оказывается полезным:
>>> 8 * "x"
'xxxxxxxx'
6.3. Специальные символы и экранированные последовательности
Вы уже видели некоторые последовательности, которые Python особым образом интерпретирует при работе со строками: \n представляет символ новой строки, а \t — символ табуляции. Последовательности символов, начинающиеся с об-ратного слеша и используемые для представления других символов, называются экранированными последовательностями . Экранированные последовательности обычно используются для представления специальных символов , то есть символов (например, табуляций и новых строк), не имеющих стандартного односимвольного
печатного представления. В этом разделе экранированные последовательности, специальные символы и сопутствующие темы будут рассмотрены более подробно.
6.3.1. Основные экранированные последовательностиPython предоставляет короткий перечень двухсимвольных экранированных по-следовательностей для использования в строках (табл. 6.1). Эти последователь-ности также могут использоваться с объектами байтовых строк, которые будут представлены в конце главы.
Таблица 6.1. Экранированные последовательности для строковых и байтовыхлитералов
Набор символов ASCII, используемый Python и являющийся стандартным почти на всех компьютерах, определяет еще несколько специальных символов. Для об-ращения к этим символам используются числовые экранированные последователь-ности, описанные в следующем разделе.
Читать дальше