2013-08-17 39 views
-1

我需要帮助来做一个函数sumOfPositiveNumbers(li)。返回列表中所有正整数的和的函数应该使用while循环。Python要做一段时间总结一个列表的整数

+0

这不是很困难。在某些变量中累加值,并且在列表中还有元素时,如果它是正值,则将其添加到累加器中。 – Makoto

+4

试一试,发布代码,我们会在你遇到困难时帮助你。 – Brionius

回答

5
def sumOfPositiveNumbers(li): 
    while True: 
     return sum(i for i in li if i > 0) 

虽然我更喜欢下面的功能,因为不是总和,它使用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

那么......这是一种使用while循环的方法...尽管从约束意义和为什么 - 不 - 你只是使用和数法 - 直接办法。 – Makoto

+1

也许与此我可以得到同伴压力徽章 –

+1

添加在一些lambda's,它会很好。 – Blender

0

我做了一个非常简单的,而像你这样的循环问:

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循环,使用一个是没有意义的。除了浪费更多的打字/时间之外,它什么都不做。

+2

“*我做了一个非常简单的while循环,就像你问*”:为什么?这不是你的家庭作业。 – Blender

+0

@Blender - 我不知道。我只是想我会帮他。此外,这可能会在将来有人使用术语“python总结列表中的正整数”或其他东西。 – iCodez

+2

如果有人不能编写代码来将列表中的正整数加起来,我恐怕为它们编写任何代码都不会有帮助。 – Blender

相关问题