Основы Python
Теория: Срезы строк
Работая со строками, мы часто сталкиваемся с задачей: извлечь часть строки. Например, получить год из даты, имя из полного ФИО или первые несколько символов из адреса электронной почты. Для таких случаев в Python существует мощный и удобный инструмент — срезы (или slices).
📍 Что такое подстрока?
Подстрока — это часть строки. То, что входит внутрь другой строки. Например, в строке '12-08-2034' подстрокой может быть '2034', '12' или даже '-'. Всё зависит от того, какую информацию нам нужно извлечь.
Допустим, у нас есть строка с датой '12-08-2034'. Мы хотим получить из неё только год — '2034'. В этой строке каждый символ имеет индекс (позицию), начиная с нуля:
Получается, год начинается с индекса 6 и заканчивается на 9. Чтобы извлечь его, мы используем срез:
Срез value[6:10] берёт символы с индекса 6 по 9 включительно. Формат среза:
Символ с индексом, указанным как "конец", не включается. Его можно воспринимать как естественный порядок символа, который нужно взять последним. То есть если там стоит 11, значит это будет 11 символ по порядку.
Как все это считать? Если мы работаем с конкретной строкой, то почти всегда это делается на глаз.
📘 Срез — это тоже строка
Срез всегда возвращает строку, даже если в ней только цифры. Это значит, что результат можно использовать, как обычную строку: конкатенировать, печатать, передавать в функции и так далее.
Сначала мы получили подстроку '12-9', а потом сделали из неё новый срез '12'.
⬅️ Срез до конца или с начала
Иногда нужно взять часть строки до конца или от начала — такие ситуации тоже легко обрабатываются срезами:
Если не указать границу, Python сам подставит нужное значение: начало строки или её конец.
↩️ Срезы с отрицательными индексами
Python позволяет считать не только слева направо, но и с конца строки. Для этого используются отрицательные индексы.
Индекс -1 в этом случае соответствует последнему символу в строке. Поэтому здесь мы видим разный результат:
Это удобно, когда заранее неизвестна длина строки, но нужно взять «хвост» или «середину» строки относительно конца.
⏩ Шаг в срезах
У среза есть третий параметр — шаг. По умолчанию шаг равен 1, то есть символы идут подряд. Но шаг можно изменить, например, взять каждый второй символ:
В этом примере:
- 1 — это срез 'exle'
- шаг 2 — означает, что мы берём через один символ: 'e' и 'l'
Можно комбинировать с открытыми границами:
🔄 Переворот строки
Одна из самых популярных «фишек» с шагом — реверс строки. Для этого используют отрицательный шаг:
Это полностью переворачивает строку — с конца к началу. Очень удобно и лаконично.
⚠️ Срезы с отрицательным шагом
Если вы используете отрицательный шаг, помните: индексы тоже нужно указывать в обратном порядке. Иначе срез не сработает (возвратит пустую строку):
Python начнёт с индекса 4 и пойдёт влево до индекса 2 включительно. Индекс 1 — не включается.
📦 Срез с переменными
Срезы не обязаны быть жёстко зафиксированы числами. Можно использовать переменные:
Это особенно полезно, когда границы вычисляются во время работы программы.
🧪 Быстрая шпаргалка
Когда делаете срез от большего индекса к меньшему, не забудьте задать отрицательный шаг — иначе срез не сработает.
Не переживайте, если сейчас не запомните все комбинации — вы быстро начнёте использовать их на практике. Главное — понимать, как работает базовая структура строка[начало:конец:шаг].








