v1.0.0

Python с нуля для ЕГЭ · Строки: символы, индексы и срезы

Урок курсаPython 35 задачБесплатно

Строки: символы, индексы и срезы

Разберём строку как неизменяемую последовательность и научимся точно выбирать её части.

Теория

Строка как последовательность

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

Строки неизменяемы. Нельзя заменить отдельный символ присваиванием, но можно собрать новую строку из готовых частей.

word = "python"first = word[0]last = word[-1]middle = word[1:4]

Как читается срез

У среза левая граница включается, а правая нет. Запись от индекса 1 до 4 берёт позиции 1, 2 и 3. Если граница пропущена, последовательность продолжается до соответствующего края.

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

Разберём на примере
Разберём слово python
Нужно вычислить срез от индекса 1 до 4.
  1. Индекс 1 указывает на y.
  2. Берутся позиции 1, 2 и 3: y, t, h.
  3. Правая граница 4 не включается, поэтому результат равен yth.
Проверьте себя
Что вернёт строка длины шесть при срезе [2:5]?
Три символа с индексами 2, 3 и 4; позиция 5 служит невключённой границей.

Строку можно разобрать и собрать заново

Пользователь часто вводит не одно слово, а целую команду. Метод split без аргументов делит строку по пробельным промежуткам, а join соединяет готовые части выбранным разделителем. Перед сравнением команды удобно убрать пробелы по краям через strip и привести буквы к одному регистру через lower.

raw = "  ADD Купить хлеб  "parts = raw.strip().split()command = parts[0].lower()title = " ".join(parts[1:])

Здесь title останется строкой «Купить хлеб». Мы не потеряли слова после команды и не зависим от количества пробелов во вводе.

Почему строку нельзя изменить на месте

Попытка присвоить новое значение одному индексу завершается ошибкой. Изменение делают созданием новой строки: соединяют новый фрагмент и нужный срез исходной.

Как проверять индексы

Подпишите несколько индексов, отдельно отметьте правую границу среза и заранее предскажите длину результата. После этого сравните прогноз с локальным запуском.

Как действовать
Проверяем выбор символов
  1. Подпишите позиции. Начните с нуля слева и с минус одного справа.
  2. Отметьте границы. Левая позиция войдёт в срез, правая — нет.
  3. Соберите символы. Сохраняйте исходный порядок.
  4. Проверьте длину. Она помогает заметить лишний или пропущенный символ.

Практика

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

Какой символ возвращает выражение "python"[2]?

Подсказка
Индексация начинается с нуля.
Решение

Индексы p, y, t равны 0, 1, 2. Поэтому по индексу 2 находится `t`.

Прочитайте последний символ

Какой символ возвращает "python"[-1]?

Подсказка
Индекс -1 обозначает последний элемент последовательности.
Решение

Последний символ строки `python` — `n`, поэтому отрицательный индекс возвращает его.

Найдите результат среза

Что вернёт "python"[1:4]?

Подсказка
Левая граница входит, правая — нет.
Решение

Берутся символы с индексами 1, 2 и 3: y, t, h. Результат — `yth`.

Соберите новую строку

Строку нельзя изменить через word[0] = "P". Какое значение получится у выражения "P" + word[1:], если word = "python"?

Подсказка
Новая строка складывается из P и хвоста исходной строки.
Решение

Срез `word[1:]` равен `ython`. После добавления заглавной P получается новая строка `Python`.

Запустите parts = "ADD Купить хлеб".split(); print(parts[0].lower(), " ".join(parts[1:])). Какую строку выведет программа?

Подсказка
`split()` убирает повторяющиеся пробелы, а `join` соединяет оставшиеся слова одним пробелом.
Решение

Первое слово приводится к нижнему регистру, а два слова названия соединяются одним пробелом: `add Купить хлеб`.

Итог

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

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

Прогресс

0 / 5
x

Вы ещё не решали задания