Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 42

Размножаем строки с помощью символа *

Оператор * можно использовать для того, чтобы размножить строку. Попробуйте

ввести в интерактивный интерпретатор следующие строки и посмотреть, что полу-

чится:

>>> 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'

62

Глава 2. Ингредиенты Python: числа, строки и переменные

>>> 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'