Python String Find – With Examples

In python, the string function find() is used find the position of a substring in a given string. In this tutorial, we’ll look its syntax and use-cases along with some examples.

Before we proceed, here’s a quick refresher on python strings – Strings are immutable sequences of unicode characters used to handle textual data. Strings implement all common sequence operations (example, iterations, membership tests, etc). For more, check out our guide on strings and other fundamentals of python.

As mentioned above, the find() string function gives the position of a substring within a string. It returns the lowest index in the string where the substring is found. If the substring is not found, it returns -1. The following is the syntax:

sample_string.find(sub, start, end)

Here, sub is the substring you want to find the position of within the sample_string.

Parameters:

  • sub: The substring to find the position of.
  • start (optional): The starting position from where the substring is to be checked within the string.
  • end (optional): The ending position till where the substring is to be checked within the string.

Returns:

The find() string function returns the lowest index where the substring is found within the sliced string sample_string[start:end]. If the substring is not found, it returns -1.

Example 1: Without optional parameters

# find the position of a substring
s = "to code or not to code"
sub = "code"

# use the find() function without parameters
pos = s.find("code")

# print
print("Position of '{}' in s: {}".format(sub, pos))

Output:

Position of 'code' in s: 3

In the above example, the substring 'code' is present at two locations in the string s. The find() function without using the start and end optional parameters returned 3 which is the position of the first occurrence of the substring within the entire string.

Example 2: Specifying the start and end parameters in the find() function.

# find the position of a substring
s = "to code or not to code"
sub = "code"

# use the find() function
pos = s.find("code")
print("Position of '{}' in s: {}".format(sub, pos))
pos = s.find("code", 0, 4)
print("Position of '{}' in s: {}".format(sub, pos))
pos = s.find("code", 4)
print("Position of '{}' in s: {}".format(sub, pos))
pos = s.find("code", 4, 22)
print("Position of '{}' in s: {}".format(sub, pos))
pos = s.find("code", 4, 21)
print("Position of '{}' in s: {}".format(sub, pos))

Output:

Position of 'code' in s: 3
Position of 'code' in s: -1
Position of 'code' in s: 18
Position of 'code' in s: 18
Position of 'code' in s: -1

In the above example, we see the results when providing the start and end parameters to the find() string function. To better understand the use of start and end parameters imagine them as the indices to slice a string, like s[start:end] and then using the find() function to get the starting index of the substring.

For more, on python string functions, refer to the python docs.

If you just want to check whether a substring is present inside the string you can use the membership operator in. For example:

# check if a substring is present or not in a string
s = "to code or not to code"

print("code" in s)
print("python" in s)

Output:

True
False

In the above example, the membership operator in is used to check for the presence of substrings 'code' and 'python' inside the string s.

For more on operators, refer to our guide on Python Operators.


Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.