如何在 for 循环中输出总和?

How I output the total sum in a for loop?

假设我想知道从 0 到 100 的列表的总和,即 5050?我循环浏览我的列表:

c=0
for i in range(0,101):
   c+=i
   print(c)

问题是我只想要最后一个元素,而不是所有元素。

只需更改打印缩进。

试试下面的代码,

c=0
for i in range(0,101):
   c+=i
print(c)

有一个 python 函数专门用于此 - sum

print(sum([x for x in range(1, 101)]))

编辑:解决对 "struggling to understand"

的担忧

[x for x in range(1, 101)]被称为list comprehension。它们用于在单行中创建列表,而不使用 for 循环 - 毕竟 python 可以成为一种函数式编程语言。 [x for x in range(1, 101)]returns一个从1到100的列表,即-

[1, 2, 3, 4, 5, ......., 99, 100]

我们跳过 0,因为无论如何它都不计入总和。

现在,如果您在此列表上执行 sum(),它将 return 列表中 所有元素的总和

因此sum([for x in range (1, 101)])returns从1到100(含)和print的所有数字的总和将打印最终结果。

为什么要用很多台词,而用的台词很少? :)

记住,List Comprehension 和 sum() 是 python 工具箱中两个非常重要的工具,每个人都应该知道这两个。

您正在循环中打印变量 "c" 的值。要仅打印总和,请删除 "print(c)" 的缩进。你正在做“=+”,但你应该做“+=”来获得总和。

c=0
for i in range(0,101):
   c+=i 
print(c)

根据您在此处提供的代码,您错过了打印语句的缩进,如果您保持这种方式的话

c=0
for i in range(0,101):
   c+=i
   print(c)

它将打印所有的总和,因为它按照当前缩进在 for 循环内,但如果您只想要最终输出,请更改打印语句的缩进,如下所示

c=0
for i in range(0,101):
   c+=i
print(c)

现在它不在 for 循环中,它只会打印 sum(c) 的最终值。