【问题标题】:Why is this function returning all True values?为什么这个函数返回所有 True 值?
【发布时间】:2019-10-22 05:01:13
【问题描述】:

我正在定义一个函数,它获取每个列表的总和并检查每个列表的单个总和是否是偶数。如果是偶数,我想返回 True。否则,我想返回 False

我希望它遍历每个列表的总和,但现在看起来循环只是检查第一个列表并停止。

另外,有没有办法通过不包括打印语句来显示答案?我觉得我过去曾这样做过,但这次似乎对我不起作用。

【问题讨论】:

  • 您在查看第一个列表后返回。在您的示例中,所有第一个列表都有偶数和(4、6 和 6)。
  • 啊。有什么方法可以查看所有列表吗?顺便谢谢
  • 将 return true 移到 for 循环之外。这样当你到了函数的末尾,如果你还没有返回,那就意味着所有的行都是真的,所以你可以返回true。
  • 这会将其变为 None、None 和 False。你知道我这次做错了什么吗?
  • 听起来你没有移动return true,你删除了它。您仍然需要在函数结束时使用 return true。阿米特的答案是我想要表达的:)。

标签: python-3.x function for-loop if-statement printing


【解决方案1】:

它正在检查第一行,因为一旦检查了更大列表中的第一个列表,您就会从函数返回。如果您想返回更大列表中的每个列表。然后,您应该将 True 和 False 值存储在一个新列表中并返回该列表。这是您应该编写的新版本代码 -

def evenrow(intList):
    result = []
    for i in intList:
        if sum(i)%2==1:
            result.append(False)
        else:
            result.append(True)

    return result

【讨论】:

    【解决方案2】:

    列表列表中的第一项总和为偶数。因此,在您的函数中,一旦满足,函数将以 True 值退出。其余项目将不被检查。 如果要检查所有项目的总和是否为偶数,则必须稍微修改代码。

    def evenrow(intList):
        AllEven = True
        for i in intList:
            if sum(i)%2==1:
                AllEven = False
        return AllEven
    

    如果我看错了要求,我很抱歉。

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 2018-08-27
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      相关资源
      最近更新 更多