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

последним будет символ по адресу -4 — w:

>>> letters[18:-3]

'stuvw'

64

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

В следующем примере мы получаем символы, начиная с шестого с конца и за-

канчивая третьим с конца:

>>> letters[-6:-2]

'uvwx'

Если вы хотите увеличить шаг, укажите его после второго двоеточия, как по-

казано в нескольких следующих примерах.

Каждый седьмой символ с начала до конца:

>>> letters[::7]

'ahov'

Каждый третий символ, начиная со смещения 4 и заканчивая 19-м символом:

>>> letters[4:20:3]

'ehknqt'

Каждый четвертый символ, начиная с 19-го:

>>> letters[19::4]

'tx'

Каждый пятый символ от начала до 20-го:

>>> letters[:21:5]

'afkpu'

Опять же значение end должно быть на единицу больше, чем реальное смещение.

И это еще не все! Если задать отрицательный шаг, любезный Python будет дви-

гаться в обратную сторону. В следующем примере движение начинается с конца

и заканчивается в начале, ни один символ не пропущен:

>>> letters[-1::-1]

'zyxwvutsrqponmlkjihgfedcba'

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

>>> letters[::-1]

'zyxwvutsrqponmlkjihgfedcba'

Операция slice более мягко относится к неправильным смещениям, чем поиск

по индексу. Если указать смещение меньшее, чем начало строки, оно будет обра-

батываться как 0, а если указать смещение большее, чем конец строки, оно будет

обработано как –1. Это показано в следующих примерах.

Начиная с –50-го символа и до конца:

>>> letters[-50:]

'abcdefghijklmnopqrstuvwxyz'

Начиная с –51-го символа и заканчивая –50-м:

>>> letters[-51:-50]

''

Строки

65

От начала до 69-го символа:

>>> letters[:70]

'abcdefghijklmnopqrstuvwxyz'

Начиная с 70-го символа и заканчивая 70-м:

>>> letters[70:71]

''