Строки

Строки в Python - упорядоченные последовательности символов, используемые для хранения и представления текстовой информации, поэтому с помощью строк можно работать со всем, что может быть представлено в текстовой форме.

Литералы строк

Что такое литерал? Литерал (англ. literal), или безымянная константа — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение.

Когда мы писали в программе

a = 1
a = 2.5

1 и 2.5 - это примеры литералов. Если числа очевидно, какими литералами обозначаются (хотя некоторые могут путать точку и запятую для отделения дробной части), то у строк возможных литералов гораздо больше.

Строки в апострофах и в кавычках

string = 'spam'
string = "spam"

Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранированные последовательности.

>>> string = '"sp"am"'
>>> print(string)
"sp"am"
>>> string = "'sp'am'"
>>> print(string)
'sp'am'

Экранированные последовательности

Экранированные последовательности позволяют вставить символы, которые сложно, или невозможно ввести с клавиатуры.

Экранированная последовательность Назначение
\n Перевод строки
\a Звонок
\b Забой
\f Перевод страницы
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\N{id} Идентификатор ID базы данных Unicode
\uhhhh 16-битовый символ Unicode в 16-ричном представлении
\Uhhhh… 32-битовый символ Unicode в 32-ричном представлении
\xhh 16-ричное значение символа
\ohh 8-ричное значение символа
\0 Символ Null (не является признаком конца строки, как, например, в языке C)
>>> print("Привет\nмир")
Привет
мир
>>> print("\N{YI SYLLABLE IT}")
ꀀ
>>> print("\U0001f604")
😄

Строки в тройных апострофах или кавычках

Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трёх кавычек подряд (либо хотя бы одна из них должна быть экранирована).

>>> c = '''это очень большая
... строка, многострочный
... блок текста'''
>>> c
'это очень большая\nстрока, многострочный\nблок текста'
>>> print(c)
это очень большая
строка, многострочный
блок текста

"Сырые" строки - подавляют экранирование

Если перед открывающей кавычкой стоит символ 'r' (в любом регистре), то механизм экранирования отключается.

S = r'C:\newt.txt'
"Сырая" строка не может заканчиваться символом обратного слэша. Его придётся добавлять (или убирать) вручную. Также неочевидно работает экранирование кавычек. Оно происходит, но символ обратного слэша также добавляется в строку. А не экранировать кавычку того же типа, что и в литерале, нельзя.

Операции над строками

Строка в Python ведёт себя как массив символов, а значит, можно применять индексы и срезы:

>>> string = "Привет, pyplanet"
>>> string[0]
'П'
>>> string[-1]
't'
>>> string[8:]
'pyplanet'
>>> string[::-1]
'tenalpyp ,тевирП'
>>> string[::2]
'Пие,ppae'

Полный список строковых методов есть в нашем справочнике.

Приведу несколько примеров, а вообще, если необходимо что-то конкретное, то Google в помощь; возможно, нужная вам процедура реализована и есть в строковых методах (это касается любых типов данных, функций и прочего).

>>> string = "Привет, pyplanet"
>>> string.upper()
'ПРИВЕТ, PYPLANET'
>>> string.replace("и", "е")
'Превет, pyplanet'
>>> string.split()
['Привет,', 'pyplanet']