Python教程:如何高效检查字符串是否包含子字符串
字符串操作是任何编程语言中常见的任务。Python提供了两种常见的方法来检查一个字符串是否包含另一个字符串。
Python检查字符串是否包含另一个字符串
Python字符串支持in运算符。因此,我们可以使用它来检查一个字符串是否是另一个字符串的一部分。in运算符的语法如下:
sub in str
如果”sub”字符串是”str”的一部分,则返回True,否则返回False。让我们看一些在Python中使用in运算符的例子。
str1 = '我喜欢Python编程'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" 包含 "{str2}" = {str2 in str1}')
print(f'"{str1}" 包含 "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" 包含 "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" 包含 "{str2}"')
else:
print(f'"{str1}" 不包含 "{str2}"')
输出:
"我喜欢Python编程" 包含 "Python" = True
"我喜欢Python编程" 包含 "python" = False
"我喜欢Python编程" 包含 "Java" = False
"我喜欢Python编程" 包含 "Python"

如果你不熟悉Python中的f前缀字符串,这是Python 3.6引入的一种新的字符串格式化方式。你可以在Python的f字符串中了解更多相关信息。
当我们使用in运算符时,它在内部调用了__contains__()函数。我们也可以直接使用这个函数,但出于可读性的考虑,建议使用in运算符。
s = 'abc'
print('s 包含 a =', s.__contains__('a'))
print('s 包含 A =', s.__contains__('A'))
print('s 包含 X =', s.__contains__('X'))
输出:
s 包含 a = True
s 包含 A = False
s 包含 X = False
使用find()函数来检查一个字符串是否包含另一个子字符串。
我们还可以使用字符串的find()函数来检查字符串是否包含子字符串。该函数返回子字符串第一次出现的索引位置,如果没有找到则返回-1。
str1 = '我喜欢Python编程'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" 包含 "{str2}"')
else:
print(f'"{str1}" 不包含 "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" 包含 "{str3}"')
else:
print(f'"{str1}" 不包含 "{str3}"')
输出:
"我喜欢Python编程" 包含 "Python"
"我喜欢Python编程" 不包含 "Java"

您可以从我们的GitHub代码仓库中检查完整的Python脚本和更多Python示例。