我是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
但是,当我使用Ctrl + B
在Sublime Console中运行脚本时,有时会导致..
Network is Warid
[Finished in 0.1s]
和其他时间..
Network not listed
[Finished in 0.1s]
而且我自己知道我没有更改函数参数中的任何值。这是我第一次在编程中遇到这个有趣的问题。
您的循环没有太多循环。您仅在测试first条目后返回。
移动循环的第二个return
out:
def get_network(n):
for network in networks:
if n == networks[network]:
return "Network is " + str(network)
return "Network not listed"
现在循环搜索,直到找到匹配的网络,并且只有在测试了所有条目并且没有找到匹配的情况下,您才返回Network not listed
。