搜索子字符串未返回预期结果
Searching for substring not returning expected result
我正在编写一个函数,它应该导入一个文本文件,然后遍历每一行以查找包含字符串 "text5" 的行。我编写的代码(对我而言)看起来是正确的,但没有得到预期的结果。当我 运行 程序时,我得到了很多不匹配的行。但是,如果我将查找方法的输入更改为“5”,它似乎可以正常工作。
我在这里错过了什么?
with open(filename) as file_object:
for line in file_object:
if 'Text5' in line:
print(line)
从Pythondocumentation,只有当你需要知道sub-string的位置时才应该使用find()
方法。要检查 sub-string 是否在行中,请使用 in
运算符。
您应该根据文档使用 if 'text5' in line:
,它会起作用。我认为正在发生的事情是,即使使用 find()
没有匹配,它也会 return -1 并且 if 语句将其评估为 True.
如果您正在搜索的 sub-string 是索引 0,那么 find()
唯一一次计算结果为 False,因为它将 return 值 0。任何其他索引值都是 True .
我正在编写一个函数,它应该导入一个文本文件,然后遍历每一行以查找包含字符串 "text5" 的行。我编写的代码(对我而言)看起来是正确的,但没有得到预期的结果。当我 运行 程序时,我得到了很多不匹配的行。但是,如果我将查找方法的输入更改为“5”,它似乎可以正常工作。
我在这里错过了什么?
with open(filename) as file_object:
for line in file_object:
if 'Text5' in line:
print(line)
从Pythondocumentation,只有当你需要知道sub-string的位置时才应该使用find()
方法。要检查 sub-string 是否在行中,请使用 in
运算符。
您应该根据文档使用 if 'text5' in line:
,它会起作用。我认为正在发生的事情是,即使使用 find()
没有匹配,它也会 return -1 并且 if 语句将其评估为 True.
如果您正在搜索的 sub-string 是索引 0,那么 find()
唯一一次计算结果为 False,因为它将 return 值 0。任何其他索引值都是 True .