【问题标题】:Blank List, Return False空白列表,返回 False
【发布时间】:2020-04-07 17:19:21
【问题描述】:

我正在寻找一个名为 has_evens 的函数定义,它接受数字序列,如果序列中有偶数则返回 True,否则返回 False。

我的代码是正确的,除非它收到一些空的东西,比如“([])”。我需要说明这一点。这是我的代码:

def has_evens(s):
    for num in s:
        if num % 2 == 0:
            return True
        elif num % 2 != 0:
            return False
        if ([]):
            return False

最后一部分是对空白列表的绝望尝试。更正式地说,它需要传递这个断言:

assert has_evens([]) == False

【问题讨论】:

    标签: python list return


    【解决方案1】:

    你应该只在找到偶数时返回True

    def has_evens(s):
        for num in s:
            if num % 2 == 0:
                return True
        return False
    

    Python 有一个any 函数来简化此操作:

    def has_evens(s):
        return any(num % 2 == 0 for num in s)
    

    【讨论】:

    • 我不知道any 函数。谢谢!
    【解决方案2】:

    我回答了我自己的问题。我只需要取消缩进我的行

    def has_evens(s):
        for num in s:
            if num % 2 == 0:
                return True
         else:
             return False
    

    【讨论】:

    • 你不只是取消缩进一些行;当num %2 != 0 时,您还删除了有问题的提前返回。
    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多