我是编程的初学者。在第16章的工作中,我对其中的一段代码感到困惑。
代码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'))将"us“打印为美国的代码。
在不匹配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'))打印“无”。
你能帮我解决这个问题吗?
发布于 2020-05-22 23:12:28
在第二个代码片段中,您的函数每次都会通过循环第一次返回。无论您是否匹配。
在第一个循环中,遍历整个循环,然后返回None。
通过将另一个return语句放入循环中,如果您可以匹配国家/地区,它将提前返回。
第一个选项看起来就是您想要的。
发布于 2020-05-22 23:33:07
您的第二个代码只运行一次。在第一次迭代中,如果与国家代码不匹配,如果代码移到else并返回None,则执行.Once返回后,您的for循环将在返回None后终止。
https://stackoverflow.com/questions/61958076
复制相似问题