我需要有关“其他”块的建议

时间:2019-12-03 13:46:54

标签: python

为什么else语句在这里打印出来?

for elem in data:
    if choose_id == elem['id']:
        print(f"{elem['ip']} : {elem['id']}")
else:
    print("No ID found")

输出为:

ID to search > 6
10.xx.xxx.xx : 6
10.xx.xxx.xx : 6
10.xx.xxx.xx : 6
10.xx.xxx.xx : 6
No ID found

我尝试在if块中插入一个“ break”语句,但是它只会重复一次。

我很乐意提供一些建议。

1 个答案:

答案 0 :(得分:1)

在您的情况下,for..else语句无济于事,因为无论如何您都希望遍历整个列表,而else部分将在之后运行。我认为,最简单的方法是拥有一个found变量,如下所示:

found = False
for elem in data:
    if choose_id == elem['id']:
        found = True
        print(f"{elem['ip']} : {elem['id']}")

if not found:
    print("No ID found")
相关问题