整数序列和的函数(Python)

整数序列和的函数(Python),python,sum,assert,Python,Sum,Assert,我有一个函数的基础知识,可以帮助输出输入必须大于0的整数列表的和 然而,我不熟悉Python的while'assert'部分,并且很难在代码中实现'assert'语句 def sum(list): sum = 0 for x in list: sum = sum + x return sum 无需使用assert,您可以使用Python方式,如列表理解: def my_sum(lst): return sum(x for x in lst if

我有一个函数的基础知识,可以帮助输出输入必须大于0的整数列表的和

然而,我不熟悉Python的while'assert'部分,并且很难在代码中实现'assert'语句

def sum(list):
    sum = 0
    for x in list:
        sum = sum + x
    return sum

无需使用assert,您可以使用Python方式,如列表理解:

def my_sum(lst):
    return sum(x for x in lst if x > 0)

再来一个!因为为什么不呢

def my_sum(lst):
    return sum(filter((0).__lt__, lst))

您不必定义默认方法“sum”,因为它已经存在于python中

>>> lst = [1,2,3,4,-5]
>>> sum([x for x in lst if x > 0])
10

编辑:由于没有阅读问题而出错

为什么要包含断言语句?如果输入是列表,那么输入必须大于0是什么意思?另外,sum是一个内置函数,无需重新实现。很抱歉,我是新手,正在尝试理解assert语句的用法。一是要确定条件,;满足整数或浮点和>0。希望这是有道理的。如果不是,我很乐意了解更多关于断言的信息。@JP.Code如果你的意思是一个非负元素的总和,那么massiou的答案是你能做的最好的方法。但是如果你想知道断言的一般含义,它们是If u debug uu的语法糖分,而不是条件:raise AssertionErrormessage。因为它们被-O标志禁用,所以它们不应用于任何功能,只应用于测试和调试保护。