Почему эта функция возвращает все истинные значения? - PullRequest
0 голосов
/ 22 октября 2019

Я определяю функцию, которая берет сумму каждого списка и проверяет, является ли индивидуальная сумма каждого списка четной. Если это даже, я хотел бы вернуть True. В противном случае, я хотел бы вернуть False

Я хочу, чтобы он перебрал сумму каждого списка, но похоже, что сейчас цикл просто проверяет первый список и останавливается.

Кроме того, есть ли способ отобразить ответ, не включая оператор печати? Я чувствую, что я делал это в прошлом, но в этот раз, похоже, это не работает для меня.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Он проверяет первую строку, потому что вы возвращаетесь из функции, как только проверяется первый список в большем списке. Если вы хотите вернуться для каждого из списков в вашем большом списке. Затем вы должны сохранить значения True и False в новом списке и вернуть этот список. Вот новая версия вашего кода, которую вы должны написать -

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

    return result
0 голосов
/ 22 октября 2019

Первый элемент в списке списков суммируется до четного числа. Таким образом, в вашей функции, когда это выполнено, функция завершается со значением True. Остальные предметы проверяться не будут. Если вы хотите проверить, все ли суммы суммируются до того, вам придется немного изменить код.

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

Извините, если неправильно прочитал требование.

...