我的代码中的情况使得即使在寻找一段时间后,我也找不到适用的答案。这是我的代码的简化版本:
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 中使用。我该怎么办?
您可以使用一个标志,该标志默认为 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
检查元素是否在您的列表中
这可能不是您的目标,但您不能只检查一次列表中是否存在该值,而不是进行迭代吗?
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)