如果循环需要继续运行,如何停止循环中的打印语句重复打印?

dar*_*ode 3 python for-loop

我的代码中的情况使得即使在寻找一段时间后,我也找不到适用的答案。这是我的代码的简化版本:

value = int(input())
list = [5,10,15,20]

for i in list:
    if i == value:
        print("Value is in list.")
        break
    else:
        print("Value is not in list.")
       
Run Code Online (Sandbox Code Playgroud)

如果我输入 15,代码将打印

“价值不在列表中。价值不在列表中。价值在列表中。”

但我只希望它打印“值在列表中”。一次如果它在列表中并打印“值不在列表中”。一次如果不是。我必须保留 for 循环和 if/else 语句。据我所知,如果不break完全结束循环,我不能在 else 中使用。我该怎么办?

ror*_*rra 6

您可以使用一个标志,该标志默认为 False,如果您找到该值,则将该标志设置为 True。

在之后for的迭代结束,你可以检查标志变量的值,以实现价值是否在名单上,不

value = int(input())
list = [5,10,15,20]

found = False
for i in list:
    if i == value:
        found = True
        break

if found:
    print("Value is in list.")
else:
    print("Value is not in list.")
Run Code Online (Sandbox Code Playgroud)

这是一种更新算法并使其工作的方法,否则您可以仅用于if value in list检查元素是否在您的列表中


wil*_*ges 5

这可能不是您的目标,但您不能只检查一次列表中是否存在该值,而不是进行迭代吗?

value = int(input())
_list = [5,10,15,20]

if value in _list:
    print("Value is in list.")
else:
    print("Value is not in list.")
Run Code Online (Sandbox Code Playgroud)