【发布时间】:2020-07-19 21:52:12
【问题描述】:
问题听起来像这样: “如果我们列出所有小于 10 且是 3 或 5 倍数的自然数,我们会得到 3、5、6 和 9。这些倍数之和是 23。
求 1000 以下所有 3 或 5 的倍数之和。”
我在下面写了一些代码,我很困惑为什么它不起作用
s1 = 0
s2 = 0
for i in range(0,1000,3):
s1 = s1 + i
for i in range(0,1000,5):
s2 = s2 + i
suma = s1 + s2
print(suma)
除此之外,我尝试一次将 0 的值分配给所有变量:
suma, s1, s2 = 0
#the rest of the code here
我收到以下错误: TypeError: cannot unpack non-iterable int object
如何一次分配所有内容?我什至需要将每个变量都分配给 0 以使我的代码正常工作,还是类似于 Turbo Pascal,其中每个 int 变量自动分配为 0?
【问题讨论】:
-
s1, s2 = 0, 0 -
你会以你的方式计算 15、30、45 等的两倍。
-
我不确定人们对此有何反对意见。你展示了你的工作,很好地格式化了问题,并且有一个可重现的问题。 +1。
-
@theX 你也可以在一行中做多个赋值,如下:
suma = s1 = s2 = 0 -
我想你已经忘记了作为初学者是什么感觉@mkrieger1。现有的代码可能代表了相当多的工作。说它没有显示任何研究努力是很不公平的。
标签: python python-3.x