为什么此函数返回所有True值?

时间:2019-10-22 05:01:13

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

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

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

还有,是否可以通过不包含打印语句来显示答案?我觉得我过去曾经做过,但是这次似乎对我没有用。

2 个答案:

答案 0 :(得分:0)

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

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

对不起,我误读了要求。

答案 1 :(得分:0)

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

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

    return result