![](/img/trans.png)
[英]how to filter a numbers list in Python 3 inside a loop & change list length
[英]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
您可以使用reduce
和lambda
函數。
from functools import reduce
print(reduce(lambda x,y:x+y**2, range(1,101)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.