В Python есть несколько удобных и эффективных способов проверить, входит ли подстрока в строку, или найти её позицию.
1. Оператор In (Проверка наличия)
Это самый простой и идиоматичный способ проверить, содержится ли подстрока в строке. Он возвращает булево значение (True или False).
Синтаксис:
Python
Подстрока in строка
Пример:
Python
Основная_строка = "Привет, мир! Python — замечательный язык."
# Проверка наличия подстроки
If "мир" in основная_строка:
print("Подстрока ‘мир’ найдена.") # Вывод: Подстрока ‘мир’ найдена.
If "Python" in основная_строка:
print("Подстрока ‘Python’ найдена.") # Вывод: Подстрока ‘Python’ найдена.
If "Java" in основная_строка:
print("Подстрока ‘Java’ найдена.")
Else:
print("Подстрока ‘Java’ не найдена.") # Вывод: Подстрока ‘Java’ не найдена.
# Регистрозависимость:
If "python" in основная_строка:
print("Подстрока ‘python’ (строчная) найдена.")
Else:
print("Подстрока ‘python’ (строчная) не найдена.") # Вывод: Подстрока ‘python’ (строчная) не найдена.
# Для регистронезависимого поиска, приведите обе строки к одному регистру:
If "python".lower() in основная_строка. lower():
print("Подстрока ‘python’ найдена (без учета регистра).") # Вывод: Подстрока ‘python’ найдена (без учета регистра).
2. Метод Find() (Поиск позиции)
Метод find() возвращает Самый низкий индекс в строке, где находится подстрока. Если подстрока не найдена, он возвращает -1.
Синтаксис:
Python
Строка. find(подстрока, [начало], [конец])
- подстрока: искомая подстрока. начало (необязательно): индекс, с которого начинается поиск. конец (необязательно): индекс, на котором заканчивается поиск.
Пример:
Python
Текст = "Python — это мощный и популярный язык программирования. Python широко используется."
# Найти первое вхождение
Индекс1 = текст. find("Python")
Print(f"Первое вхождение ‘Python’ на индексе: {индекс1}") # Вывод: Первое вхождение ‘Python’ на индексе: 0
# Найти вхождение, начиная с определенного индекса
Индекс2 = текст. find("Python", 1) # Ищем ‘Python’, начиная с индекса 1 (т. е. пропускаем первый)
Print(f"Второе вхождение ‘Python’ на индексе: {индекс2}") # Вывод: Второе вхождение ‘Python’ на индексе: 49
# Если подстрока не найдена
Индекс3 = текст. find("Java")
Print(f"Вхождение ‘Java’ на индексе: {индекс3}") # Вывод: Вхождение ‘Java’ на индексе: -1
# Использование начала и конца диапазона
Индекс4 = текст. find("язык", 20, 40) # Ищем ‘язык’ в диапазоне индексов от 20 до 40
Print(f"Вхождение ‘язык’ в диапазоне [20, 40) на индексе: {индекс4}") # Вывод: Вхождение ‘язык’ в диапазоне [20, 40) на индексе: 33
3. Метод Index() (Поиск позиции с исключением)
Метод index() работает аналогично find(), но если подстрока не найдена, он вызывает исключение ValueError. Используйте его, когда вы Ожидаете, что подстрока будет найдена, и хотите, чтобы программа выдала ошибку, если это не так.
Синтаксис:
Python
Строка. index(подстрока, [начало], [конец])
Пример:
Python
Фраза = "Изучаем Python!"
Try:
pos1 = фраза. index("Python")
print(f"Подстрока ‘Python’ найдена на позиции: {pos1}") # Вывод: Подстрока ‘Python’ найдена на позиции: 8
Except ValueError:
print("Подстрока не найдена.")
Try:
pos2 = фраза. index("Java")
print(f"Подстрока ‘Java’ найдена на позиции: {pos2}")
Except ValueError:
print("Подстрока ‘Java’ не найдена.") # Вывод: Подстрока ‘Java’ не найдена.
4. Метод Count() (Подсчет количества вхождений)
Метод count() возвращает Количество непересекающихся вхождений подстроки в строке.
Синтаксис:
Python
Строка. count(подстрока, [начало], [конец])
Пример:
Python
Предложение = "Банан, я люблю бананы, а ты любишь бананы?"
Кол_бананов = предложение. count("банан")
Print(f"Количество вхождений ‘банан’: {кол_бананов}") # Вывод: Количество вхождений ‘банан’: 2 (один в "Банан," другой в "бананы,")
Кол_любл = предложение. count("люблю")
Print(f"Количество вхождений ‘люблю’: {кол_любл}") # Вывод: Количество вхождений ‘люблю’: 2
Когда что использовать:
- In: Самый простой и рекомендуемый способ, если вам просто нужно проверить Наличие подстроки. Find(): Если вам нужна Позиция первого вхождения подстроки, и вы хотите обработать случай, когда подстрока отсутствует (возвращает -1). Index(): Если вам нужна Позиция первого вхождения, и вы хотите, чтобы программа Выдавала ошибку, если подстрока не найдена. Count(): Если вам нужно знать Количество раз, сколько подстрока встречается в строке.