Python: Извлечение символов из строки
Иногда нужно получить один символ из строки. Например, если сайт знает имя и фамилию пользователя, и в какой-то момент требуется вывести эту информацию в формате A. Ivanov, то нужно взять первый символ из имени.
first_name = 'Alexander'
print(first_name[0]) # => A
Квадратные скобки с цифрой, это операция извлечения элемента по индексу — позицией символа внутри строки. Индексы начинаются с 0 почти во всех языках программирования — поэтому, чтобы получить первый символ, нужно указать индекс 0
. Индекс последнего элемента равен длине строки минус единица. Обращение к индексу за пределами строки приведёт к ошибке:
# Длина строки 9, поэтому последний индекс — это 8
first_name = 'Alexander'
print(first_name[8]) # => r
print(first_name[9])
IndexError: string index out of range
# Вопрос на самопроверку. Что выведет этот код?
magic = '\nyou'
print(magic[1]) # => ?
Допустимо использовать отрицательные индексы. В этом случае идёт обращение к символам, начиная с конца строки. -1
— индекс последнего символа, -2
предпоследнего и так далее. В отличие от прямой индексации, в обратной отсчёт идет от -1
:
first_name = 'Alexander'
print(first_name[-1]) # => r
Индексом может быть не только конкретное число, но и значение переменной. Вот пример, который приведёт к тому же результату — выводу на экран символа A, но индекс внутри квадратных скобок записан не числом, а переменной:
first_name = 'Alexander'
index = 0
print(first_name[index]) # => A
Задание
Вам даны три переменные с фамилиями разных людей. Составьте и выведите на экран слово из символов в таком порядке:
- третий символ из первой строки;
- второй символ из второй строки;
- четвертый символ из третьей строки;
- пятый символ из второй строки;
- третий символ из второй строки.
Попробуйте использовать интерполяцию: внутри фигурных скобок можно помещать не только целые переменные, но и отдельные символы с помощью квадратных скобок.
Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.