DamiRocK

Python: индексы строки, отрицательные позиции и слово grip

Извлекаем символы из Python programming по положительным индексам. Разбираем счёт с нуля, отрицательные позиции и ошибку выхода за границы.

Позиции начинаются с нуля

Выражение text[0] возвращает первый символ строки, text[1] — второй. Пробелы, знаки препинания и переводы строк тоже занимают позиции. Для строки длиной n последний неотрицательный индекс равен n−1.

Задание источника и исходные данные

В файле решения задано text = "Python programming". Нужно соединить выбранные символы и получить grip. Текст упражнения упоминает три имени участников, но фактические данные содержат одну строку; здесь используется строка из исходного кода, а расхождение отмечено.

text = "Python programming"
print(text[10] + text[8] + text[15] + text[7])

Индексы 10, 8, 15 и 7 указывают соответственно на g, r, i и p. Конкатенация сохраняет порядок, заданный выражением, а не порядок символов в исходной строке.

Индексы с конца

Для непустой строки text[-1] возвращает последний символ, text[-2] — предпоследний. Это удобно, когда длина заранее неизвестна, но не делает доступ безусловно безопасным. У пустой строки нет последнего символа; слишком большой по модулю отрицательный индекс тоже вызывает IndexError.

Невидимый символ тоже считается

magic = "\nyou"
print(magic[1])  # y

На позиции 0 находится перевод строки. Важно различать индекс и порядковый номер: «первый символ» означает индекс 0, а не 1. Для составных символов Unicode визуальное число знаков может отличаться от числа кодовых точек, по которым работает индексирование Python.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Адаптация; расхождение данных и границы индексации уточнены.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.