我是编码的初学者。在阅读第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'))
打印“无”。
您能帮我解决这个问题吗?
在第二个代码段中,您的函数每次都会在循环中第一次返回。是否匹配。
首先,您要遍历整个循环,然后返回None
。
通过将另一个return语句放入循环中,如果您可以匹配国家/地区,它将早日返回。
第一个选项就是您想要的样子。
您的第二个代码仅运行一次。在第一次迭代中,如果与国家/地区代码不匹配,则在代码中移至else并返回None的情况下。一旦执行return,则返回None后将终止for循环。