If statement 编写一个函数,计算整数列表中所有正值和偶数的总和

If statement 编写一个函数,计算整数列表中所有正值和偶数的总和,if-statement,sum,python-3.6,If Statement,Sum,Python 3.6,函数应接受单个列表作为参数。函数应返回一个整数值作为计算结果。如果列表中没有正值甚至整数值,则函数应返回0 我当前的代码: def main(): print (sum_positive_even([1,2,3,4,5])) print (sum_positive_even([-1,-2,-3,-4,-5])) print (sum_positive_even([1,3,5,7,9])) def sum_positive_even(list): for num

函数应接受单个列表作为参数。函数应返回一个整数值作为计算结果。如果列表中没有正值甚至整数值,则函数应返回0

我当前的代码:

def main():
    print (sum_positive_even([1,2,3,4,5]))
    print (sum_positive_even([-1,-2,-3,-4,-5]))
    print (sum_positive_even([1,3,5,7,9]))

def sum_positive_even(list):
    for num in list:
        if num < 0:
            list.remove(num)
    for num in list:
        if num % 2 == 1:
            list.remove(num)
    result = sum(list)
    return result

main()
我不知道应该将“返回0”放在哪里。
谢谢你,塔塔

在迭代列表时从列表中删除是一件非常困难的事情——这样很容易很难找到bug。更好的办法是建立一个新的清单,列出你想保留的物品。您不需要返回0的特殊情况;一般方法应该能够处理这个问题

另外,最好不要在Python中使用
list
作为变量名,因为这是内置函数的名称

对您的方法的修改:

def sum_positive_even(lst):
    to_keep = []
    for num in lst:
        if num > 0 and num % 2 == 0:
            to_keep.append(num)
    return sum(to_keep)

由于空列表的总和为0,这涵盖了没有正偶数的情况。

这是一个多么有用的信息!非常感谢你!我希望你有一个伟大的一天。会做的!谢谢你的帮助!
def sum_positive_even(lst):
    to_keep = []
    for num in lst:
        if num > 0 and num % 2 == 0:
            to_keep.append(num)
    return sum(to_keep)