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