Python不可理解的流量控制

时间:2013-10-24 13:37:21

标签: python python-3.3 flow-control

我是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]

我自己知道我没有更改函数参数中的任何值。这是我第一次在编程中遇到这个有趣的问题。

1 个答案:

答案 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