-1

関数 sumOfPositiveNumbers(li) を作成するのに助けが必要です。リスト内のすべての正の整数の合計を返す関数と、関数は while ループを使用する必要があります。

4

2 に答える 2

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

合計の代わりにラムダ式のみを使用するため、次の関数を好みますが

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)
于 2013-08-17T15:35:39.083 に答える
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 ループを使用しなければならない場合を除き、while ループを使用しても意味がありません。より多くの入力/時間を浪費する以外は、実際には何もしません。

于 2013-08-17T15:38:34.117 に答える