Индексация и срезы строк

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

Тренажер по Python

В этом модуле мы погрузимся в работу со строками в Python, изучая два фундаментальных механизма: индексацию и срезы. Вы узнаете, как получать доступ к отдельным символам строки, используя положительные и отрицательные индексы, а также как извлекать подстроки (части строк) с помощью срезов. Мы разберем синтаксис квадратных скобок, научимся переворачивать строки задом наперед и избегать распространенных ошибок выхода за пределы диапазона. Эти навыки необходимы для любой обработки текстовых данных, от парсинга файлов до анализа веб-страниц.

Список тем

Индексация: Начало отсчета

id: 39993_task_mod7_01

В Python индексация начинается с нуля. Посмотрите на код и определите, какой символ будет выведен на экран.

Выберите правильный вариант ответа
word = "PYTHON"
print(word[1])
Сообщения
Проверить
Показать подсказку

Доступ к последнему символу

id: 39993_task_mod7_02

Используйте отрицательную индексацию, чтобы вывести **последний** символ строки `file_name`. Не используйте функцию `len()`.

Заполните пропуски
file_name = "script.py"
last_char = file_name[input1S]
print(last_char)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте синтаксис индексации

id: 39993_task_mod7_03

Программист попытался получить третий символ строки, но перепутал тип скобок. Исправьте ошибку в коде.

Найдите ошибку и исправьте
s = "Indexing"
char = s(2)
print(char)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Индекс и длина строки

id: 39993_task_mod7_04

Дан код. Вычислите, какое число будет выведено на экран.

Что должно получиться?
s = "Start"
index = len(s) - 2
print(index)
Сообщения
Проверить
Показать подсказку

Сопоставьте срез и результат

id: 39993_task_mod7_05

Дана строка `text = "0123456789"`. Сопоставьте код среза с результатом, который он вернет.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
"0123"
"345"
"0123456789"
"789"
text[:]
text[:4]
text[7:]
text[3:6]
Сообщения
Проверить
Показать подсказку

Шаг в срезах

id: 39993_task_mod7_06

Заполните пропуски, чтобы получить указанные результаты из строки `alphabet`. Используйте параметр шага (step).

Нужно правильно расставить в пропуски предложенные варианты
alphabet = "ABCDEFG"

# 1. Взять каждый второй символ ('ACEG')
print(alphabet[::input1S])

# 2. Перевернуть строку ('GFEDCBA')
print(alphabet[::input2S])
2
-1
1
3
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Проверка на палиндром

id: 39993_task_mod7_07

Соберите код, который проверяет, является ли слово палиндромом (читается одинаково слева направо и справа налево). Переменная `word` уже задана ("LEVEL"). Обратите внимание: одна строка содержит ошибку в срезе и является лишней.

Перетяните в правильном порядке строки из одного блока в другой
if word == word[::-1]:
if word == word[1::]:
    print("Palindrome")
word = "LEVEL"
else:
    print("Not palindrome")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Допустимые операции и ошибки

id: 39993_task_mod7_08

Распределите выражения по двум категориям: те, что вернут результат (строку или символ), и те, что вызовут ошибку `IndexError`.
Контекст: `s = "Data"`. (Длина строки 4, индексы 0, 1, 2, 3).

Перетяните элементы в соответствующие блоки
Результат (Без ошибки)
IndexError
s[0]
s[3]
s[4]
s[10:20]
s[-1]
s[-5]
Сообщения
Проверить
Показать подсказку

Сложный срез

id: 39993_task_mod7_09

Что выведет следующий код? Внимательно проследите за индексами начала, конца и шагом.

Выберите правильный вариант ответа
# 0123456789
s = "abcdefghij"
print(s[1:8:2])
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру