Python速成课程Eric问题

问题描述 投票:0回答:2

我是编码的初学者。在阅读第16章时,我对其中一种代码感到困惑。

CODE 1来自作者:

1。

def get_country_code(country_name):
    for name , code in COUNTRIES.items():
        if name == country_name:
            return code
    return None

print(get_country_code('United States'))

将“我们”打印为美国代码。

为什么在不匹配country_name的情况下,使用else时第二个代码不起作用?

2。

def get_country_code(country_name):
    for name , code in COUNTRIES.items():
        if name == country_name:
            return code
        else:
            return None

print(get_country_code('United States'))

打印“无”。

您能帮我解决这个问题吗?

python
2个回答
0
投票

在第二个代码段中,您的函数每次都会在循环中第一次返回。是否匹配。

首先,您要遍历整个循环,然后返回None

通过将另一个return语句放入循环中,如果您可以匹配国家/地区,它将早日返回。

第一个选项就是您想要的样子。


0
投票

您的第二个代码仅运行一次。在第一次迭代中,如果与国家/地区代码不匹配,则在代码中移至else并返回None的情况下。一旦执行return,则返回None后将终止for循环。

© www.soinside.com 2019 - 2024. All rights reserved.