有人可以幫我解決這個問題。我總是得到這個代碼的錯誤,但不知道什麼是錯的?打印總和(x) - python
x= 1523
while x <= 10503:
x=x+2
print sum(x)
編輯。抱歉不清楚。是的,我想要得到1523到10503(包括)(間隔2)的所有數字的總和。
有人可以幫我解決這個問題。我總是得到這個代碼的錯誤,但不知道什麼是錯的?打印總和(x) - python
x= 1523
while x <= 10503:
x=x+2
print sum(x)
編輯。抱歉不清楚。是的,我想要得到1523到10503(包括)(間隔2)的所有數字的總和。
問題是sum()僅適用於可迭代類型,例如元組,列表或類似元素。
而你正在求和一個整數,所以這不是工作。
你可以嘗試這樣的事情:
x = 1523
x_list = []
while x <= 10503:
x=x+2
x_list.append(x)
print(sum(x_list))
我假設你想獲得的所有數字的總和在算術級數,其第一個元素是1523年最後一個元素是10503,其公差爲2它是不是從你的問題明確
的Python的解決方案是:
print(sum(range(1523, 10504, 2)))
(使用while循環來構建一個包含一系列整數的列表s有點愚蠢時,有內置,它會更有效地。)
print(sum(range(1523,10503,2)))給出26993880 ,但另外兩個解決方案27014888.你爲什麼認爲是這樣? – noob
您希望第二個參數爲10504,因爲它需要高於您範圍中的最後一個數字。 phihag的解決方案將在最後添加10505,而Pulimon的解決方案將省略1523. – geoffspear
爲什麼使用循環?
>>> ((10503-1523+2)//2 * (1523 + 10503))//2
27004383
這僅僅是一個老問題的擴展,「什麼是所有整數從1到100的總和?」這是
50*101 (1+100 + 2+99 + 3+98 + ... 50+51)
+1基礎數學。 – geoffspear
如果你解釋你想達到...萬一 –