你能帮助我进行这次蟒蛇练习吗?

Luk*_*e D 3 python

我想写一个函数,它接受一个数字列表并返回累积和; 也就是说,一个新的列表,其中第i个元素是原始列表中第一个i + 1个元素的总和.例如,[1,2,3]的累积和是[1,3,6].

到目前为止,这是我的代码:

 def count(list1):
     x = 0
     total = 0
     while x < len(list1):
         if x == 0:
             total = list1[0]
             print total
             x = x +1
         else:
             total = list1[x] + list1[x -1]
             print total
             x = x + 1
     return total 

print count([1, 2, 3, 4, 7])
Run Code Online (Sandbox Code Playgroud)

然而,它不起作用.

你能告诉我我做错了什么吗?我现在已经有很长一段时间了.

非常感谢!

卢克

jdi*_*jdi 9

你可能会过度思考这个过程.逻辑不需要真正分成像这样的案例测试.到目前为止您所拥有的部分是总计数器,但您只需要遍历列表中的每个值.使用if..else时不要使用条件

通常情况下我不会给出答案,但我觉得看到工作代码比试图通过你迄今为止的额外和不必要的瑕疵更有利于你.

def count(l):
    total = 0
    result = []
    for val in l:
        total += val
        result.append(total)
    return result
Run Code Online (Sandbox Code Playgroud)

我们仍然使用总计数器.我们为结果创建一个空列表.但我们所要做的就是遍历列表中的每个项目,添加到总计,并每次追加新值.没有条件,你不必担心什么时候while打破.您将在原始列表中循环遍历每个项目,这是一致的.