我有一個從1到5的範圍。 該範圍內的每個數字被平方。獲取範圍內所有數字的總和
for x in range(1, 5 + 1):
x = x ** 2
print(x)
這樣做,給了我: 1,4,9,16,25
,是完美的,但我怎麼然後申請新的數字之和的範圍,讓他們等於55?
我有一個從1到5的範圍。 該範圍內的每個數字被平方。獲取範圍內所有數字的總和
for x in range(1, 5 + 1):
x = x ** 2
print(x)
這樣做,給了我: 1,4,9,16,25
,是完美的,但我怎麼然後申請新的數字之和的範圍,讓他們等於55?
累積的總和:
>>> 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
total = 0
for x in range(1, 5 + 1):
x = x ** 2
total = total + x
print(x)
print total
以上應該可以幫助你。當你計算X到另一個變量中時,你想要存儲總和。然後,您可以在程序中進一步使用總和。
啊,好點。對不起,我很久沒有用過python了。 (迴應關於不使用sum作爲變量名稱的評論,因爲它隱藏了名爲sum的函數) – TheOneWhoPrograms
替代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
數學來救援! http://en.wikipedia.org/wiki/Square_pyramidal_number – M4rtini
謝謝! 我有它,我犯了2個錯誤,我使用sum作爲變量,我有一個錯字。 – Sinfamy
@Sinfamy你甚至不需要迭代。有一個公式可以找到答案。請檢查我的答案。 – thefourtheye