String manipulation is a common task in any programming language. Python provides two common ways to check if a string contains another string.
Try it yourself: cloud servers from €3.12/month
ccloud³ VMs from German data centers – deployed in seconds, billed by the hour, with a €200 starting credit for new accounts. Launch a server →
Python Check if String Contains Another String
Python string supports the in operator. So we can use it to check if a string is part of another string or not. The in operator syntax is:
sub in strIt returns True if “sub” string is part of “str”, otherwise it returns False. Let’s look at some examples of using the in operator in Python.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')Output:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"If you are not familiar with f-prefixed strings in Python, it’s a new way for string formatting introduced in Python 3.6. You can read more about it at f-strings in Python.
When we use the in operator, internally it calls __contains__() function. We can use this function directly too, however, it’s recommended to use the in operator for readability purposes.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))Output:
s contains a = True
s contains A = False
s contains X = FalseUsing find() to Check if a String Contains Another Substring
We can also use the string find() function to check if a string contains a substring or not. This function returns the first index position where the substring is found, else returns -1.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')Output:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.