JavaRush /Курсы /Модуль 1: Python Core /Получение подстрок

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

Модуль 1: Python Core
6 уровень , 10 лекция
Открыта

11.1 Задание индексов

В Python извлечение подстрок — это часто используемая операция, позволяющая манипулировать текстовыми данными и извлекать значимые части информации из строк. Рассмотрим несколько способов получения подстрок, каждый из которых имеет свои особенности и области применения.

Использование срезов

Срезы (slices) — это основной способ получения подстрок в Python. Срез в Python создается с помощью синтаксиса string[start:stop:step], где:

  • start — начальный индекс (включительно),
  • stop — конечный индекс (не включительно),
  • step — шаг, с которым извлекаются символы.

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


text = "Hello, world!"
substring = text[7:12]  # Выведет 'world'
        

11.2 Неполное задание индексов

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

  • Если start опущен, срез начинается с начала строки.
  • Если stop опущен, срез идет до конца строки.
  • Если step опущен, символы извлекаются один за другим.

Примеры:

Давайте напишем пример, чтобы получить подстроку начиная с 7-го символа и до конца строки


text = "Hello, world!"
substring = text[7:]  # Выведет 'world!' 

Теперь с начала строки и до 10 символа. Надеюсь, вы помните, что последний символ диапазона не включается в подстроку-результат.


text = "Hello, world!"
substring = text[:10]  # Выведет 'Hello, wor'
        

11.3 Отрицательные индексы

Отрицательные индексы в Python позволяют обращаться к элементам строки начиная с конца. Использование отрицательных индексов делает код часто более читабельным и удобным, особенно когда нужно работать с концом строки.

Получение последнего символа строки:


text = "Python"
last_char = text[-1]
print(last_char)  # Выведет: 'n'
    

Получение предпоследнего символа строки:


text = "Python"
second_last_char = text[-2]
print(second_last_char)  # Выведет: 'o'

Для получения последних трёх символов строки:


text = "Python"
last_three = text[-3:]
print(last_three)  # Выведет: 'hon'

Для получения строки, исключая последний символ:


text = "Python"
all_but_last = text[:-1]
print(all_but_last)  # Выведет: 'Pytho'

Продвинутое использование срезов

С помощью параметра step можно создавать более сложные срезы, например, для извлечения символов в обратном порядке:


# Перевернуть строку
print(text[::-1])  # '!dlrow ,olleH'
        
2
Задача
Модуль 1: Python Core, 6 уровень, 10 лекция
Недоступна
Извлечение подстрок.
Извлечение подстрок.
2
Задача
Модуль 1: Python Core, 6 уровень, 10 лекция
Недоступна
Отрицательные срезы
Отрицательные срезы
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Andrey Kochegarov Уровень 64
17 февраля 2025
не первое уже задание в котором путаница с индексами. определитесь уже
Николай Уровень 17
15 февраля 2025
Мда оригиналы, с 3й по 8й символы это оказывается срез со 2го по 9й
Dmitry Ryabov Уровень 22
28 января 2025
Программа должна извлечь из принятой строки подстроку с 3-го по 8-й символ (индекс) включительно. Программа должна извлечь из принятой строки подстроку с 5-го символа (индекса) до конца строки. Так индекс или символ всё-таки? 3-й символ располагается по индексу 2, 8-й символ по индексу 7. Для символов срез будет

my_str[2:8]
Для индексов

my_str[3:9]
Олексій Єрмак Уровень 25
12 января 2025
В пункте 11.2, там где начинаются примеры, написано "давите напишем пример", а должно быть "давайте напишем пример". Исправьте пожалуйста.
Зепп Бранниган Уровень 54 Moderator
13 января 2025
Спасибо за замечание, исправим.