search

str.find

Returns the lowest index in the string where substring sub is found within the slice [start:end]. Returns -1 if the substring is not found, unlike index() which raises ValueError.

str.find(sub[, start[, end]])

Parameters

Parameter Purpose
sub substring to search for
start optional slice start index (default 0)
end optional slice end index (default len(str))

Examples

>>> 'hello world'.find('world')
6

returns index of first match

>>> 'hello'.find('z')
-1

returns -1 when substring is missing (no exception)

>>> 'ababab'.find('a', 2)
2

start argument narrows search window

>>> 'abc'.find('')
0

empty substring is found at position 0

Gotcha

Returns -1 on miss (never raises). Use the `in` operator for a simple membership check — it is clearer and faster than `find(...) != -1`.

Related methods

← All Python string methods · Python built-ins