2013-08-17 73 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

相關問題