1K подписчиков

Программирование на языке Python. Срезы (приложение к уроку 10)

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Данная статья это приложение к уроку 10.

Ссылка на одиннадцатый урок

Срезы (слайсы) в строка Python

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

  1. Срез это часть строки, которая определяется двумя индексами и шагом. s[i:j:h] - первый символ подстроки имеет индекс i, последний - j-1. Шаг по-умолчанию равен 1. Например s = 'qwertyuiop'. s[1:6:1] - 'werty'. s[1:6:2] - 'wry'. Если шаг равен 1, то можно писать так s[1:6:] или так s[1:6]. Если начало подстроки 0, то можно опускать первый индекс s[:6], если конец подстроки совпадает с концом основной строки, то можно опустить второй индекс s[1:]. Наконец s[:] это просто другое обозначение s.
  2. Срезы очень удобно использовать для строковых операций: удаление части строки, вставка одной строки в другую, замена одной подстроки на другую. На видеоуроке это было показано. Но еще раз приведу здесь примеры
    Удалить подстроку с 2-ого по 4-й символ.
    s = 'qwertyuiop'
    s = s[0:2] + s[5:]
    Вставить подстроку начиная с 3-его символа
    s = 'qwertyuiop'
    s1 = '1234'
    s = s[0:3] + s1 + s[3:]

    Заменить фрагмент начиная со 2-ого по 5-ого включительно.
    s = 'qwertyuiop'
    s1 = '1234'
    s = s[0:3] + s1 + s[6:]
  3. Можно использовать отрицательный шаг. Тогда, например, легко получить строку с обратной последовательности символов. s = s[-1::-1].
  4. Поскольку срез это тоже строка, то можно брать срезы от срезов. s[1:10][3:7] и т.п.

В заключении приведу пример поиска подстроки в строке. С помощью срезов программа получается более понятной и компактной.

Замечание
Интерпретатор довольно аккуратно работает с индексами. Если индекс не реалистичные значения ошибка не генерируется, а просто возвращается пустая строка.
s = 'qwe'
print(s[0:10]) # печатает всю строку
print(s[5:10]) # пустая строка
print(s[2:0]) # пустая строка

Результат выполнения

qwe

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Знаете, что я думаю? Когда нибудь программированием будет заниматься искусственный интеллект, но это будет уже в другой жизни
Знаете, что я думаю? Когда нибудь программированием будет заниматься искусственный интеллект, но это будет уже в другой жизни

#программирование #программисты #python #языки программирования