Перейти до основного вмісту
Модуль 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. Оцініть `domain`.

Завантаження редактора…
Показати підказку

електронна пошта[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 спроб