为什么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”语句,但是它只会重复一次。
我很乐意提供一些建议。
答案 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")