Выбрать главу

>>> 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, до конца.