我试图找到所有小于1000的数字的总和除以3和5.我到目前为止有这个:
for i in range(0, 1000):
if i % 3 == 0:
print i
elif i % 5 == 0:
print i
b = sum(i)
print b
我得到TypeError: 'int' object is not iterable
(指b = sum(i)
)
答案 0 :(得分:-1)
您可以尝试这样的事情:
# initially we declare a variable that will hold the current sum
# and at the end of the for it will hold
# the sum of the numbers you have mentioned.
b = 0
for i in range(1000):
# Then whether i is evenly divided by 3 or 5
# we add this number to the current sum
if i % 3 == 0 or i % 5 == 0:
b += i
# last we print the sum
print b
答案 1 :(得分:-1)
使用以下行
sum将可迭代对象作为输入。列表,集合等是可迭代的。
请尝试以下
b = sum(i for i in range(1000) if i%3 == 0 or i%5 == 0)
答案 2 :(得分:-1)
从你的代码中我想你需要可以被3 or 5
整除的数字之和。在所有解决方案中,另一种可能的单线解决方案是:
print(sum(filter(lambda x: x%3==0 or x%5==0, range(1000))))
这里得到这个TypeError
,因为sum
函数接受一系列数字并返回序列的总和。在您的代码中,您将i
作为sum
的参数传递,在大多数情况下,这是int
类型对象。所以你得到了这个错误。