Срезы строки
Срез достаёт из строки сразу целый кусок — а не один символ. Разберём границы среза наглядно, по коробочкам.
Срез — это кусок строки
Срез (slice) достаёт из строки сразу несколько символов подряд:
строка[start:stop]. Здесь start —
индекс, с которого срез начинается (включительно), а
stop — индекс, на котором срез заканчивается
(НЕ включительно).
stop - start. Мысленно удобно представлять индексы не как номера БУКВ, а как номера ГРАНИЦ МЕЖДУ буквами — посмотрите на числа над коробками ниже: они стоят ровно в промежутках.Первые три символа
word = "Cartesian"
print(word[0:3]) # Car
Последние три символа
word = "Cartesian"
print(word[6:9]) # ian
Кусок из середины
word = "Cartesian"
print(word[3:6]) # tes
Пропущенные границы
Если start пропустить — срез начинается с самого начала
строки. Если пропустить stop — срез идёт до самого конца.
Пропустить можно и обе границы сразу — тогда получится копия всей строки:
word = "Cartesian"
print(word[:3]) # Car — то же самое, что word[0:3]
print(word[6:]) # ian — то же самое, что word[6:9]
print(word[:]) # Cartesian — копия строки целиком
Шаг среза
У среза есть и третий, необязательный параметр — шаг:
строка[start:stop:step]. Шаг 2 значит «берём каждый второй
символ»:
word = "Cartesian"
print(word[::2]) # Craea — каждый второй символ, с начала до конца
Разворот строки: [::-1]
Отрицательный шаг проходит строку в обратном направлении. Если пропустить и
start, и stop, а шаг поставить
-1 — получится строка задом наперёд:
word = "Cartesian"
print(word[::-1]) # naisetraC
строка[::-1] — классический приём Python. Третий параметр среза — «шаг»; шаг -1 проходит строку с конца в начало. Мы воспользуемся этим в мини-проекте 8.20.Для слова «программирование» получите срезом каждую третью букву (шаг 3), а затем — само слово, развёрнутое задом наперёд.