获取范围内所有数字的总和

时间:2014-02-13 08:08:51

标签: python range

我的范围从1到5。 该范围内的每个数字都是平方的。

for x in range(1, 5 + 1):
  x = x ** 2
  print(x)

这样做,给了我: 1,4,9,16,25。

这是完美的,但我如何请求范围内新数字的总和使它们等于55?

4 个答案:

答案 0 :(得分:6)

累积总和:

>>> total = 0
>>> for x in range(1, 5+1):
...     total += x ** 2
...
>>> total
55

更优选地,使用sumgenerator expression

>>> sum(x**2 for x in range(1, 5+1))
55

答案 1 :(得分:4)

替代square pyramidal number solution(由M4rtini建议):

(2*(5**3) + 3*(5**2) + 5)/6

或一般n:

def square_pyramid(x):
    return (2*(x**3) + 3*(x**2) + x)/6

答案 2 :(得分:1)

total = 0
for x in range(1, 5 + 1):
    x = x ** 2
    total = total + x
    print(x)
print total

以上应该可以帮到你。您希望在计算X到另一个变量时存储总和。然后,您可以在程序中进一步使用总和。

答案 3 :(得分:1)

一行:

sum(x**2 for x in xrange(1,6))