1. Индексация строк
В Python строки являются последовательностями символов, и каждый символ имеет свой индекс (позицию).
Особенности индексации:
Пример:
text = "Python"
print(text[0]) # 'P' (первый символ)
print(text[3]) # 'h' (четвёртый символ)
print(text[-1]) # 'n' (последний символ)
print(text[-2]) # 'o' (предпоследний символ)
Ошибка при выходе за границы
Если обратиться к несуществующему индексу, возникнет ошибка IndexError
:
text = "Hello"
print(text[10]) # ❌ IndexError: string index out of range
2. Срезы (slicing)
Срезы позволяют извлекать подстроки по диапазону индексов.
Синтаксис:
строка[начало:конец:шаг]
-
начало
— индекс начала (включительно). Если не указан, срез начинается с 0
.
-
конец
— индекс конца (не включается). Если не указан, срез идёт до конца строки.
-
шаг
— через сколько символов брать (по умолчанию 1
).
Примеры:
text = "Программирование"
# Базовые срезы
print(text[2:7]) # 'ограм' (символы 2-6)
print(text[:5]) # 'Прогр' (с начала до 4)
print(text[5:]) # 'аммирование' (с 5 до конца)
print(text[-5:]) # 'ание' (последние 5 символов)
# Срезы с шагом
print(text[::2]) # 'Пормиоаие' (каждый второй символ)
print(text[::-1]) # 'еиневимармаргорП' (разворот строки)
Особые случаи:
text = "ABCDEF"
print(text[1:100]) # 'BCDEF' (конец автоматически ограничен длиной строки)
print(text[100:]) # '' (пустая строка, если начало за пределами)
3. Метод count()
— подсчёт вхождений подстроки
Метод count()
возвращает количество вхождений подстроки в строку.
Синтаксис:
строка.count(подстрока, [начало], [конец])
Примеры:
text = "банан"
print(text.count("а")) # 2 (две буквы 'а')
print(text.count("ан")) # 1 (одно вхождение 'ан')
print(text.count("н", 3)) # 1 (ищем 'н' начиная с индекса 3)
# Поиск в части строки
sentence = "Я люблю Python и Python люблю меня"
print(sentence.count("люблю", 0, 10)) # 1 (ищем в первых 10 символах)
Важно:
-
Регистр имеет значение:
print("Hello".count("h")) # 0 (ищет строчную 'h')
-
Если подстрока не найдена, возвращает 0
:
print("abc".count("z")) # 0