>>> print('\tabc')
····abc
>>> print('a\tbc')
a····bc
>>> print('ab\tc')
ab······c
>>> print('abc\t')
abc
В последней строке табуляция стоит в конце, ее вы, конечно, увидеть не можете.
Кроме того, вам могут понадобиться последовательности \' или \", чтобы поместить в строку одинарные или двойные кавычки, которые окружены таким же символом:
>>> print('\tabc')
····abc
>>> print('a\tbc')
a····bc
>>> print('ab\tc')
ab······c
>>> print('abc\t')
abc
А если вам нужен обратный слеш, просто напечатайте два:
>>> speech = 'Today we honor our friend, the backslash: \\.'
>>> print(speech)
Today we honor our friend, the backslash: \.
Объединяем строки с помощью символа +
Вы можете объединить строки или строковые переменные в Python с помощью оператора +, как показано далее:
>>> 'Release the kraken! ' + 'At once!'
'Release the kraken! At once!'
Можно также объединять строки (не переменные), просто расположив одну перед другой:
>>> "My word! " "A gentleman caller!"
'My word! A gentleman caller!'
Python не добавляет пробелы за вас при конкатенации строк, поэтому в предыдущем примере нужно явно добавить пробелы. Далее мы добавляем пробелы между каждым аргументом выражения print(), а также символ новой строки в конце:
>>> a = 'Duck.'
>>> b = a
>>> c = 'Grey Duck!'
>>> a + b + c
'Duck.Duck.Grey Duck!'
Размножаем строки с помощью символа *
Оператор * можно использовать для того, чтобы размножить строку. Попробуйте ввести в интерактивный интерпретатор следующие строки и посмотреть, что получится:
>>> start = 'Na ' * 4 + '\n'
>>> middle = 'Hey ' * 3 + '\n'
>>> end = 'Goodbye.'
>>> print(start + start + middle + end)
Извлекаем символ с помощью символов []
Для того чтобы получить один символ строки, задайте смещение внутри квадратных скобок после имени строки. Смещение первого (крайнего слева) символа равно 0, следующего — 1 и т. д. Смещение последнего (крайнего справа) символа может быть выражено как –1, поэтому вам не придется считать, в таком случае смещение последующих символов будет равно –2, –3 и т. д.:
>>> letters = 'abcdefghijklmnopqrstuvwxyz'
>>> letters[0]
'a'
>>> letters[1]
'b'
>>> letters[-1]
'z'
>>> letters[-2]
'y'
>>> letters[25]
'z'
>>> letters[5]
'f'
Если вы укажете смещение, равное длине строки или больше (помните, смещения лежат в диапазоне от 0 до длины строки –1), сгенерируется исключение:
>>> letters[100]
Traceback (most recent call last):
··File "<stdin>", line 1, in <module>
IndexError: string index out of range
Индексирование работает и для других типов последовательностей (списков и кортежей), которые мы рассмотрим в главе 3.
Поскольку строки неизменяемы, вы не можете вставить символ непосредственно в строку или изменить символ по заданному индексу. Попробуем изменить слово Henny на слово Penny и посмотрим, что произойдет:
>>> name = 'Henny'
>>> name[0] = 'P'
Traceback (most recent call last):
··File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Вместо этого вам придется использовать комбинацию строковых функций вроде replace() или slice (ее вы увидите совсем скоро):
>>> name = 'Henny'
>>> name.replace('H', 'P')
'Penny'
>>> 'P' + name[1:]
'Penny'
Извлекаем подстроки с помощью оператора [start: end: step]
Из строки можно извлечь подстроку (часть строки) с помощью функции slice. Вы определяете slice с помощью квадратных скобок, смещения начала подстроки start и конца подстроки end, а также опционального размера шага step. Некоторые из этих параметров могут быть исключены. В подстроку будут включены символы, расположенные начиная с точки, на которую указывает смещение start, и заканчивая точкой, на которую указывает смещение end.
• Оператор [: ] извлекает всю последовательность от начала до конца.
• Оператор [start: ] извлекает последовательность с точки, на которую указывает смещение start, до конца.