Статья

Python: срезы

5 сентября 2026~8 минут10–11 класс

Пять минут на эту статью — и «Python: срезы» станет понятнее. Внутри: теория без воды, пример, разбор задания и чек-лист самопроверки.

Python: срезы — быстрый способ работать с последовательностями

Если при решении задачи приходится вручную выбирать элементы строки или списка, легко запутаться в индексах и пропустить нужное значение. Срезы Python помогают взять целую часть последовательности одной короткой записью: от начала до конца, через шаг или в обратном порядке. Разберём правило, научимся читать такую запись и закрепим навык на понятных примерах.

Срез можно применять к строкам, спискам, кортежам и другим последовательностям. Общий вид выглядит так:

последовательность[начало:конец:шаг]
строка[1:5]
числа[::2]

Индексы в Python начинаются с нуля. Поэтому у строки «Python» символ P имеет индекс 0, y — индекс 1, а последний символ можно обозначить индексом −1.

Главное правило: левая граница включается в результат, а правая не включается. Срез [1:4] возьмёт элементы с индексами 1, 2 и 3. Такой подход называют полуинтервалом: начало входит, конец остаётся за границей.

Как устроен срез

Начало показывает, откуда брать элементы. Если его не написать, Python начинает с начала последовательности. Конец показывает, где остановиться. Если конец пропущен, срез продолжается до конца. Шаг задаёт расстояние между выбранными элементами; по умолчанию он равен 1.

слово = "информатика"
слово[0:4] → "инфо"
слово[4:] → "рматика"
слово[:4] → "инфо"
слово[::2] → "иноиа"

Отрицательные индексы отсчитываются справа налево. Индекс −1 обозначает последний элемент, −2 — предпоследний. Это удобно, когда длина строки или списка заранее неизвестна.

цвета = ["красный", "жёлтый", "зелёный", "синий"]
цвета[-2:] → ["зелёный", "синий"]
цвета[:-1] → ["красный", "жёлтый", "зелёный"]

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

Шаг и разворот последовательности

Шаг равен третьим элементом записи и может быть положительным или отрицательным. При шаге 2 берётся каждый второй элемент, при шаге 3 — каждый третий. Нулевой шаг использовать нельзя: программа сообщит об ошибке, потому что двигаться с нулевой скоростью невозможно.

числа = [0, 1, 2, 3, 4, 5, 6, 7]
числа[1:7:2] → [1, 3, 5]
числа[::3] → [0, 3, 6]

Особенно полезен шаг −1. Он читает последовательность справа налево и позволяет быстро получить разворот строки или списка.

текст = "Python"
текст[::-1] → "nohtyP"
числа[::-1] → [7, 6, 5, 4, 3, 2, 1, 0]

Совет репетитора

Перед вычислением среза подпиши индексы над элементами. Особенно это помогает при отрицательном шаге: сначала пойми направление движения, затем проверь границы.

Если шаг отрицательный, обычно начало ставят правее конца. Например, [5:1:−1] включает индексы 5, 4, 3 и 2, но не индекс 1.

Разобранный пример

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

данные = "a b c d e f g"
часть = данные[::2]
ответ = часть[::-1]
print(часть)
print(ответ)
Результат:
abcdefg
gfedcba

Разберём решение по шагам. В строке пробелы тоже занимают позиции, поэтому здесь важно не перепутать условие с другой строкой без пробелов. Срез данных[::2] начинает с индекса 0 и выбирает каждый второй символ. В результате остаются буквы a, b, c, d, e, f и g.

Затем срез часть[::-1] проходит по полученной строке справа налево. Значение переменной часть не меняется: развёрнутая копия сохраняется в ответ. Если задача требует изменить список, можно присвоить срезу новые значения, но со строками так поступить нельзя, потому что строки неизменяемы.

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

Типичные ошибки и проверка записи

Самая частая ошибка — считать правую границу включительной. Запись список[2:5] содержит индексы 2, 3 и 4. Если нужно включить элемент с индексом 5, поставь правую границу 6.

ЗаписьЧто делает
а[2:6]элементы от индекса 2 до 5
а[:4]первые четыре элемента
а[3:]от индекса 3 до конца
а[::−1]полный разворот

Вторая ошибка — забыть, что индекс 0 является первым. Третья — ожидать ошибку при слишком большой границе. Python обычно спокойно возвращает доступную часть последовательности. Например, [1:100] у короткого списка возьмёт элементы от 1 до конца.

Ловушка

Срез [::-2] идёт с конца и берёт каждый второй элемент, а [::−2] записывается с тем же смыслом. Но [0:−1:−1] обычно даст пустой результат: направление и границы не согласованы.

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

Что запомнить

Срез записывается как [начало:конец:шаг]. Начало включается, конец не включается. Пропущенное начало означает движение от первого элемента, пропущенный конец — движение до последнего. Индексы могут быть отрицательными, а шаг −1 разворачивает последовательность.

Для уверенного решения задач полезно не заучивать отдельные результаты, а каждый раз мысленно отмечать индексы. Сначала определи направление, затем выпиши старт, границу и шаг. Такой алгоритм работает и со строками, и со списками.

Зарегистрируйся и реши 5 заданий бесплатно в личном кабинете, чтобы закрепить тему практикой. Если готовишься к экзамену, дополнительные задания по программированию можно искать в разделе ОГЭ или ЕГЭ.

Можно ли использовать срезы только со строками и списками?

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

Почему правая граница не входит в результат?

Так устроено правило полуинтервала Python. Благодаря ему длина среза без шага равна разности границ, а соседние диапазоны удобно соединять без повторов.

Что произойдёт, если срез выходит за длину списка?

Обычно Python не выдаёт ошибку, а возвращает доступную часть. Однако при обращении к одному элементу по несуществующему индексу возникнет IndexError.

Как закрепить тему после разбора?

Реши несколько задач с разными границами, отрицательными индексами и шагами. Полезно сначала предсказать результат вручную, а затем проверить его в Python и объяснить каждую позицию.

Проверь себя на реальных заданиях

После такого разбора решите 5–7 заданий подряд — и тема ваша. Тренажёр Просто Урок подберёт их автоматически и объяснит ошибки по шагам. Бесплатно.

Важно. Материалы сайта носят информационно-образовательный характер и не являются публичной офертой (ст. 437 ГК РФ), индивидуальной консультацией или руководством к действию. Мы аккуратно работаем с фактами, но не гарантируем полную точность и актуальность: структура и правила экзаменов могут меняться — сверяйтесь с официальными источниками (ФИПИ, действующие кодификаторы и нормативные акты РФ). Администрация сайта не несёт ответственности за возможные неточности и за решения, принятые на основе материалов. Заметили неточность — напишите нам, мы исправим.