3
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 行)

4

2 回答 2

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 上运行此代码,则可以更改rangexrange上述表达式。此外,在阅读其他人的代码时,您有时会看到在这种类型的上下文中if x % 3 == 0编写if not x % 3,但我更喜欢第一个版本(对我来说似乎更明确一点)。

于 2012-08-17T12:42:50.780 回答
2
num + i = num <--- Adding Up Numbers Divisable by 3 & 5...

您不能为表达式赋值。

另外,为什么不每次加 5 并检查它是否能被 3 整除?你已经知道它可以被5整除...

于 2012-08-17T12:42:09.597 回答