我的范围从1到5。 该范围内的每个数字都是平方的。
for x in range(1, 5 + 1):
x = x ** 2
print(x)
这样做,给了我: 1,4,9,16,25。
这是完美的,但我如何请求范围内新数字的总和使它们等于55?
答案 0 :(得分:6)
累积总和:
>>> total = 0
>>> for x in range(1, 5+1):
... total += x ** 2
...
>>> total
55
更优选地,使用sum
和generator 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))