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

См. также

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.