开发者社区> 问答> 正文

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

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 后边? 这两种代码的输出会有什么不同

展开
收起
几许相思几点泪 2019-12-29 18:57:55 847 0
1 条回答
写回答
取消 提交回答
  • 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
    
    2019-12-29 18:58:23
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云MaxCompute百问百答 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载