Перейти к основному содержимому
Модуль 4 · Урок 2 из 414/36 в курсе~10 min
Уроки модуля (2/4)

Нарезка и индексирование

В Python строки представляют собой последовательности символов: вы можете получить доступ отдельные символы по индексу и вырезать подстроки с помощью среза синтаксис [start:stop:step] — точно так же, как и в списках.

Положительные и отрицательные индексы

Python
s = "Python"
#    0123456
#   -6-5-4-3-2-1
s[0]    # 'P'
s[5]    # 'n'
s[-1]   # 'n'   (ultimo)
s[-2]   # 'o'   (penultimo)

Доступ за пределами диапазона вызывает IndexError.

Нарезка [start:stop:step]

Python
s = "Python"
s[0:3]    # 'Pyt'      indici 0,1,2 (stop ESCLUSO)
s[2:]     # 'thon'     dal 2 alla fine
s[:3]     # 'Pyt'      dall'inizio fino al 3 (escluso)
s[:]      # 'Python'   copia completa
s[-3:]    # 'hon'      ultimi 3
s[:-2]    # 'Pyth'     tutto tranne gli ultimi 2

В отличие от индексации, нарезка НЕ вызывает ошибок, если индексы отсутствуют. диапазона: он вырезает все, что может.

Третий аргумент: step

Python
s = "Python"
s[::2]    # 'Pto'    salta uno sì uno no
s[1::2]   # 'yhn'    dispari
s[::-1]   # 'nohtyP' INVERSIONE (idiom famoso)

s[::-1] — это идиоматический способ перевернуть строку.

Длина и сдерживание

Python
len("Python")        # 6
"th" in "Python"     # True
"java" in "Python"   # False

Отрицательные индексы и шаг нарезки

Полный синтаксис нарезки: s[start:stop:step]. Если вы опустите start и stop, но зададите отрицательное значение step, равное -1 (s[::-1]), вы перевернете строку. Отрицательный индекс -1 всегда представляет последний символ строки, -2 — предпоследний символ и т. д.

Попробуйте это

Упражнение#python.m4.l2.e1
Попыток: 0Загрузка…

Учитывая `word = 'PROGRAMMAZIONE'`, получите его обратное значение в `reversed_word`. Оцените `reversed_word`.

Загрузка редактора…
Показать подсказку

слово[::-1]

Решение доступно после 3 попыток

Обзор упражнения

Упражнение#python.m4.l2.e2
Попыток: 0Загрузка…

Учитывая `email = 'ada@example.com'`, извлеките домен (все, что после '@') в `domain`, используя срез после нахождения индекса с помощью .find. Оцените «домен».

Загрузка редактора…
Показать подсказку

электронная почта[email.find('@') + 1:]

Решение доступно после 3 попыток

Дополнительная задача

Упражнение#python.m4.l2.e3
Попыток: 0Загрузка…

Учитывая строку \`word = "pythonista"\`, используйте нарезку, чтобы извлечь первые 3 символа и последние 3 символа, и объединить их в новую строку \`short_word\`. Наконец, оцените \`short_word\` (оно должно дать \`'pytsta'\`).

Загрузка редактора…
Показать подсказку

The first 3 characters are word[:3], the last 3 are word[-3:]. Concatenate the two slices.

Решение доступно после 3 попыток