我需要帮助来创建一个函数sumOfPositiveNumbers(li)。一个返回列表中所有正整数之和的函数,该函数应使用while循环。
答案 0 :(得分:5)
def sumOfPositiveNumbers(li):
while True:
return sum(i for i in li if i > 0)
虽然我更喜欢以下函数,因为它不使用sum,而是仅使用lambda表达式
def sumOfPositiveNumbers(li):
while True:
return ((lambda f: (lambda x: x(x))
(lambda y: f(lambda a: y(y)(a))))
(lambda f: lambda a: len(a) and
(a[0] > 0) * a[0] + f(a[1:])))(li)
答案 1 :(得分:0)
我做了一个非常简单的while循环,就像你问的那样:
def sumOfPositiveNumbers(li):
total = 0
index = 0
while index < len(li):
num = li[index]
if num > 0:
total += li[index]
index += 1
return total
但我必须说,这项工作可以做得更好:
def sumOfPositiveNumbers(li):
return sum(x for x in li if x > 0)
除非你必须使用while循环,否则使用one循环是没有意义的。除了浪费更多打字/时间外,它什么也没做。