str.find()
Метод find() возвращает наименьший индекс, по которому начинается подстрока sub в исходной строке. Если подстрока не найдена, метод возвращает -1. В отличие от index(), find() не возбуждает исключение.
Сигнатура
str.find(sub, start=0, end=len(string))
Параметры
sub— подстрока для поиска.start— начальный индекс среза, в котором ведётся поиск (включительно).end— конечный индекс среза (не включительно).
Возвращаемое значение
Целое число (int) — индекс первого вхождения подстроки. Если подстрока не найдена, возвращается -1.
Примеры использования
Пример 1. Поиск подстроки.
text = "Arduino, ESP32, STM32"
print(text.find("ESP32"))
9
Пример 2. Подстрока не найдена.
text = "Привет, мир"
print(text.find("Python"))
-1
Пример 3. Поиск с указанием начального индекса.
s = "abc abc abc"
print(s.find("abc"))
print(s.find("abc", 1))
print(s.find("abc", 5))
0
4
8
Пример 4. Edge case — пустая подстрока.
Поиск пустой подстроки всегда успешен и возвращает start:
print("Arduino".find(""))
print("Arduino".find("", 3))
0
3
Пример 5. Практическое применение — проверка наличия подстроки.
Для простой проверки лучше использовать оператор in, но find() полезен, когда нужен сам индекс:
email = "alash.electronics@gmail.com"
at = email.find("@")
if at != -1:
user, domain = email[:at], email[at + 1:]
print(f"Пользователь: {user}, домен: {domain}")
Пользователь: alash.electronics, домен: gmail.com
См. также
str.startswith() — проверка начала строки
str.endswith() — проверка конца строки
str.replace() — замена подстроки
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.