Зарегистрируйтесь, чтобы продолжить обучение

Извлечение символов из строки Основы Python

Извлечение символов из строки

Иногда нужно получить один символ из строки. Например, если сайт знает имя и фамилию пользователя и нужно вывести их в сокращённом формате — A. Ivanov. Для этого потребуется взять первую букву имени.

В Python для таких задач есть специальный механизм — индексация.

🔢 Индексация: как это работает

Представим, что у нас есть строка:

first_name = 'Alexander'

Чтобы получить первую букву, указываем её позицию (индекс) в квадратных скобках:

print(first_name[0])  # => A

Индексы в Python (и во многих языках) начинаются с нуля:

Символ    A   l   e   x   a   n   d   e   r
Индекс    0   1   2   3   4   5   6   7   8

Чтобы получить, например, последний символ, можно написать:

print(first_name[8])  # => r

Если изменится длина строки, то последний элемент тоже сдвинется и придется указывать новый индекс по которому расположен этот символ.

А если выйти за границы строки, то мы получим ошибку:

print(first_name[9])

IndexError: string index out of range

Поэтому в программировании принято проверять длину строки и обращаться к ее символами только если это безопасно. Мы до этого дойдем в будущих уроках.

📍 Укороченное извлечение с конца

Часто нужно получить последний символ строки, но заранее неизвестна её длина. В этом случае можно использовать отрицательные индексы:

print(first_name[-1])  # => r
print(first_name[-2])  # => e

Отрицательные индексы работают так:

  • -1 — последний символ
  • -2 — предпоследний
  • и так далее

Это не только удобно, но и безопасно, потому что работает правильно даже если строка меняет свою длину.

Индекс — это не только число. Индекс можно хранить в переменной, а не записывать прямо:

index = 0
print(first_name[index])  # => A

Такой подход полезен, когда индекс вычисляется где-то в коде, а потом используется для доступа к нужному символу.

🌀 Спецсимволы

При индексации учитываются не только обычные буквы и знаки, но и спецсимволы. Они тоже занимают позицию в строке, у них есть свой индекс, даже если их «не видно» на экране.

Например, в строке \nyou первый символ — это \n (перенос строки), а под индексом 1 уже идёт буква y. Поэтому обращение magic[1] вернёт именно y.

Подумайте: что выведет этот код?

magic = '\nyou'
print(magic[1])  # => ?

В строке '\nyou' первый символ — это \n (перенос строки), а под индексом 1 — буква y. Вывод будет:

y

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff