请问有人可以点醒一下我吗

from pygal_maps_world.maps import COUNTRIES

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

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

请问这为什么第一个代码的return none不用放在else后边?
这两种代码的输出会有什么不同

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

你的第一个代码,else是放循环外面的吧,如果判断第一次,name==country_name 不成立,就直接返回None了,不会进行第二次判断了,所以这个循环还有必要吗;

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

不用else,这样写也是可以的,关于for...else...的用法可以看 这里

def get_country_code(country_name):
    for code,name in COUNTRIES.items():
        if name==country_name:
            return code
    return None
4年前 评论
讨论数量: 2
def get_country_code(country_name):
    for code,name in COUNTRIES.items():
        if name==country_name:
            return code
        else:
            return None

你的第一个代码,else是放循环外面的吧,如果判断第一次,name==country_name 不成立,就直接返回None了,不会进行第二次判断了,所以这个循环还有必要吗;

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

不用else,这样写也是可以的,关于for...else...的用法可以看 这里

def get_country_code(country_name):
    for code,name in COUNTRIES.items():
        if name==country_name:
            return code
    return None
4年前 评论

谢谢大佬!让我知道了原来还有for else语句

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!