首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python速成课程Eric Matthes

Python速成课程Eric Matthes
EN

Stack Overflow用户
提问于 2020-05-22 23:08:33
回答 2查看 95关注 0票数 0

我是编程的初学者。在第16章的工作中,我对其中的一段代码感到困惑。

代码1来自作者:

1.

代码语言:javascript
复制
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'))

将"us“打印为美国的代码。

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

2.

代码语言:javascript
复制
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'))

打印“无”。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-22 23:12:28

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

在第一个循环中,遍历整个循环,然后返回None

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

第一个选项看起来就是您想要的。

票数 0
EN

Stack Overflow用户

发布于 2020-05-22 23:33:07

您的第二个代码只运行一次。在第一次迭代中,如果与国家代码不匹配,如果代码移到else并返回None,则执行.Once返回后,您的for循环将在返回None后终止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61958076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档