簡體   English   中英

在for循環內添加數字列表

[英]Adding a list of numbers inside of a for loop

我有一項任務是對前100個自然數的平方求和,但我一直遇到問題-

'int'對象是不可迭代的。

我試圖使列表作為字符串或總和作為int,但是它沒有用。 我是一個初學者,所以我將不勝感激!

y=0
x=0
for z in range(1, 10000):
    while y<100:
        x=((y+1)**2)
        y=y+1
    a=sum(z)
    print (a)

更加Python化的方式:

s = sum(x**2 for x in range(100))

因為sum功能需要迭代,所以您會收到錯誤消息。 您正在傳遞給它一個int,它將無法正常工作。 有關此的更多信息,請查看sum函數官方文檔

為了使代碼正常工作,您只需要一個循環。

result = 0
for x in range(101):
    result += x*x

print(result)

正如@kwinkunks所提到的 ,范圍應該達到101,因為它代表stop參數並且不會在循環中迭代。 有關范圍的更多信息,請參閱官方文檔

這應該輸出:

338350

如果只需要平方前100個自然數的和,就可以只用一個循環

total=0
for i in range(1,101):
    total +=i*i
print(total)

這將輸出為

338350

您可以使用reducelambda函數。

from functools import reduce
print(reduce(lambda x,y:x+y**2, range(1,101)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM