sum_even_values(1,2,3,4,5,6) # 12
sum_even_values(4,2,1,10) # 16
sum_even_values(1) # 0

# define sum_even_values
def sum_even_values(*args):        
    #return sum( x for x in args if x%2==0 )        
    return sum (filter(lambda x: x%2==0, args))

---返回sum(filter(args,lambda x:x%2 == 0))--- TypeError:'function'对象不可迭代

如果args是可迭代对象,并且filter希望仅为sum函数提供偶数,为什么它会向我显示TypeError . 两个返回必须具有相同的输出,但第二个不起作用 . 下面的代码也是如此 .

sum_floats(1.5, 2.4, 'awesome', [], 1) # 3.9
sum_floats(1,2,3,4,5) # 0

def sum_floats(*args):    
    #return sum(x for x in args if type(x)==float)
    return sum ( filter ( args, lambda x : type(x)==float))