如何让for循环只在Python中满足条件时打印字符串



我正在尝试检查我的用户输入是否存在于列表中,并且只有在满足特定用户输入的条件时才打印出来。但我当前的代码并不是这样执行的,相反,它会打印出我的else语句

以下是我正在使用的示例列表:

some_ls = [('abc', '123be33da28891e6335962b2484445fb'), ('def', '123be33da28891e6335962b2484445cb'), ('ghi', 'f2ecfad3e0f5d19c3365848449a91bbc'), ('jkl', 'aef14a39f7cbf175dfc59a4d52105847')]

我的代码块完成检查:

for elem in some_ls:
if user_input == elem[1]:
print (f"{user_input}{' was FOUND!'}")
print (f"{'Matched to : '}{elem}n")
else:
print ("Further processing ...")
# Further processing code here

输出:

请输入一个值:aef14a39f7cbf175dfc59a4d52105847正在进一步处理。。。正在进一步处理。。。正在进一步处理。。。aef14a39f7cbf175dfc59a4d52105847已找到!匹配到:('jkl','aef14a39f7cbf175dfc59a4d52105847'(

我不想出现在这里的是"正在进一步处理"打印出来,因为我只想使用不在当前列表中的输入。我曾尝试在我的if-else语句中使用break,这会导致我的输出不准确,就好像在第一行之后被截断一样;正在进一步处理"即使我知道输入的值在我的列表中。

当您找到匹配项时,您可以break。但同时,不要打印";未找到";直到搜索到整个列表。

for elem in some_ls:
if user_input == elem[1]:
print (f"{user_input}{' was FOUND!'}")
print (f"{'Matched to : '}{elem}n")
break
else:
print ("Further processing ...")
# Further processing code here

最新更新