Python String in String

To check if a string contains another string in Python, use the in operator.

For example:

if "word" in somestring:
    # do something

To also find the index at which the substring occurs, use the find() method of a string.

For example:

somestring.find("word")

This returns the first index at which the substring “word” occurs. If no string is found, it returns -1.

Let’s see some examples.

Examples of Checking If a String Is a Substring of Another String

Let’s figure out if the word “This” occurs in a string:

sentence = "This is just a sentence"

if "This" in sentence:
    print("Found it!")

Output:

Found it!

Let’s then figure out the index at which it occurs:

sentence = "This is just a sentence. This is another."

idx = sentence.find("This")
print("The word 'This' begins at:", idx)

Output:

The word 'This' begins at: 0

As you can see, the find() method only cares about the first occurrence of the word “This” in the sentence.

An Edge Case

If you are using the in operator, check that the main string is not None. If you do no do that, you get an error.

For example:

sentence = None

if "This" in sentence:
    print("Found it!")

Output:

TypeError: argument of type 'NoneType' is not iterable

To avoid this error, make sure to check against None like this:

sentence = None

if sentence is not None and "This" in sentence:
    print("Found it!")

Conclusion

Today you learned how to check if a string contains a substring in Python.

To recap:

  • Use the in statement to check if a string is a substring of another string.
  • Use the string’s built-in find() method to figure out the index at which the string starts in another string.

Thanks for reading. I hope you enjoy it.

Happy coding!

Further Reading

50 Python Interview Questions with Answers

50+ Buzzwords of Web Development