我是Python的新手,也是我的第3天。我正在用这个丑陋的例子来预热python的一些语法。
networks = {"Ufone": 333, "Mobilink": 300, "Warid": 321}
def get_network(n):
for network in networks:
if n == networks[network]:
return "Network is " + str(network)
else:
return "Network not listed"
print(get_network(321))
您知道,当我使用Network is Warid
在Sublime控制台中运行脚本时,它会产生Ctrl + B
但是有时会导致...
Network is Warid
[Finished in 0.1s]
和其他时间..
Network not listed
[Finished in 0.1s]
我自己知道我没有更改函数参数中的任何值。这是我第一次在编程中遇到这个有趣的问题。
答案 0 :(得分:6)
你的循环没有做太多的循环。在仅测试第一个条目后返回。
移动循环的第二个return
:
def get_network(n):
for network in networks:
if n == networks[network]:
return "Network is " + str(network)
return "Network not listed"
现在循环直到找到匹配的网络,并且只有在您测试了所有条目并且未找到匹配项时才返回Network not listed
。