Позиции начинаются с нуля
Выражение 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. Адаптация; расхождение данных и границы индексации уточнены.