Python检查字符串是否包含另一个字符串

时间:2020-02-23 14:42:29  来源:igfitidea点击:

字符串操作是任何编程语言中的常见任务。
Python提供了两种常用方法来检查一个字符串是否包含另一个字符串。

Python检查字符串是否包含另一个字符串

Python字符串支持in运算符。
因此,我们可以使用它来检查一个字符串是否是另一个字符串的一部分。
in运算符的语法为:

sub in str

如果" sub"字符串是" str"的一部分,则返回" True",否则返回" False"。

我们来看一些在Python中使用in运算符的示例。

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}"')

输出:

"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"

如果您不熟悉Python中带有f前缀的字符串,那么这是Python 3.6中引入的一种新的字符串格式设置方式。
您可以在Python的f字符串中了解更多有关它的信息。

当我们在运算符中使用时,在内部它会调用__contains __()函数。
我们也可以直接使用此功能,但是出于可读性考虑,建议在运算符中使用此功能。

s = 'abc'

print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))

输出:

s contains a = True
s contains A = False
s contains X = False

使用find()检查一个字符串是否包含另一个子字符串

我们还可以使用string find()函数来检查string是否包含子字符串。
此函数返回找到子字符串的第一个索引位置,否则返回-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}"')

输出:

"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"