Пропустить до содержимого

Как использовать индексацию строк в Python?

[

Индексация строк в Python

Строки представляют собой упорядоченные последовательности символов данных. Индексация позволяет обращаться к отдельным символам строки напрямую с использованием числового значения. Индексация строк начинается с нуля: первый символ строки имеет индекс 0, следующий - 1, и так далее. В этом уроке вы узнаете синтаксис индексации строк и попрактикуетесь на нескольких примерах:

Python:

s = 'mybacon'
s[0] # 'm'
s[1] # 'y'
s[6] # 'n'
s[len(s)-1] # 'n'

Вот некоторые примеры использования отрицательной индексации:

Python:

s = 'mybacon'
s[-1] # 'n'
s[-4] # 'a'
s[-len(s)] # 'm'
s[-7] # 'm'
s[-8] # IndexError: string index out of range

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

Python:

t = ''
t[0] # IndexError: string index out of range
len(t) # 0

Операция индексации используется для получения доступа к отдельным элементам в упорядоченном наборе данных, используя числовой индекс или ключевое значение. В случае со строками, индексация позволяет получить доступ к отдельным символам строки с использованием числового индекса. В Python индексация строк начинается с нуля, поэтому первый символ имеет индекс 0, а следующий - 1 и так далее. Индекс последнего символа будет равен длине строки минус один.

Давайте рассмотрим пример. Для строки ‘mybacon’ первый символ будет иметь индекс 0, второй - 1 и так далее. Последний индекс, несмотря на то, что в строке семь символов, будет равен числу 6 для символа ‘n’. Попробуем это интерактивно:

Python:

s = 'mybacon'
s[0] # 'm'
s[1] # 'y'
s[5] # 'o'
s[6] # 'n'

На этом примере мы видим, как получить доступ к первому элементу строки, используя квадратные скобки и индекс 0. Таким образом, s[0] возвращает ‘m’. Аналогично, s[1] вернет второй символ, s[5] - предпоследний символ, а последний символ будет иметь индекс 6. Несмотря на то, что это седьмой символ, индекс все же будет 6.

Другой способ получить доступ к последнему символу - использовать встроенную функцию len(). Выражение s[len(s)-1] также даст вам последний символ. Если же вы попытаетесь обратиться к индексу, выходящему за пределы длины строки, например 7, возникнет ошибка “IndexError: string index out of range”. То же самое произойдет, если вы используете только функцию len(s) по отдельности, результат останется тем же - индекс находится за пределами диапазона.

Отрицательные значения индексов для строк тоже допустимы. В случае отрицательного индекса подразумевается отсчет с конца строки. Например, -1 будет соответствовать символу 'n' в конце строки, а -7 - первой букве. Вы можете попробовать это самостоятельно, используя строку s = 'mybacon'. Таким образом, s[-1] вернет последний символ, а -4 - четвертый символ.

Что произойдет, если вы укажете слишком большое или слишком маленькое отрицательное значение индекса? В обоих случаях будет ошибка “IndexError: string index out of range”. Примером является ситуация, когда у вас есть пустая строка t = ''. При попытке обратиться к первому индексу вы получите ошибку, потому что это значение находится за пределами допустимого диапазона. Для таких случаев важно помнить, что для доступа к последнему элементу необходимо указать длину строки минус один.

Индексы строк можно также указывать с использованием отрицательных чисел. Отрицательный индекс указывает на то, что отсчет следует идти в обратном порядке. Например, -1 будет соответствовать символу 'n', находящемуся в конце строки. Символ 'm' будет соответствовать индексу -7. Попробуйте самостоятельно. Работаем со строкой s = 'mybacon'. Если взять s[-1] в квадратные скобки, то получим последний символ. Для -4 будем получать соответствующий символ. Также можно использовать функцию len(s), чтобы узнать количество символов в строке. Если указать s[-len(s)], то получим первую букву, такая же, как если бы мы указали -7.

Что произойдет, если вы вызовете индекс, которого не существует (например, слишком большой или отрицательный индекс)? Возникнет ошибка “IndexError: string index out of range”. То же самое произойдет, если вы вызовете количество символов в пустой строке, например t = '', и попытаетесь обратиться к первому индексу. В этом случае также возникнет ошибка, поскольку строки не имеют длины.

Однако, помимо доступа к отдельным символам строки, с использованием индексов можно получать и диапазоны символов. Это называется «срез строк» (string slicing), и об этом будет рассказано далее.

Присоединяйтесь к обсуждению, становясь участником сообщества.