i = 0
num = 0
while i <= 1000:
if i % 3 and i % 5 == 0:
num + i = num <--- Adding Up Numbers Divisable by 3 & 5...
i += 1
print num
错误: * 无法分配给运营商(第5行)
答案 0 :(得分:10)
您确定不想要:
num = num + i
或等效地:
num += i
请注意,使用sum
,range
和生成器表达式可以更轻松地完成此操作:
sum( x for x in range(0,1000,5) if x % 3 == 0 )
#^only take every 5th element (0, 5, 10, 15 ...)
#^ Also only take elements divisible by 3
如果您计划仅在python 2.x上运行此代码,则可以在上面的表达式中将range
更改为xrange
。此外,在阅读其他人的代码时,您有时会在这种类型的上下文中看到if x % 3 == 0
写为if not x % 3
,但我更喜欢第一个版本(对我来说似乎更明确一些)。
答案 1 :(得分:2)
num + i = num <--- Adding Up Numbers Divisable by 3 & 5...
您无法为表达式指定值。
另外,为什么不每次只添加5并检查它是否可以被3整除?你已经知道它可以被5 ...
整除