想象一下,我有以下代码:
i=0
while True:
if flag==True and i=i+5:
func()
.
.
.
i+=1
break
不应该是i==i+5
?
我想每次运行func()
次。
答案 0 :(得分:2)
i = i + 5
之前的值为i
,否则 -5
始终为true。但是,if i = i + 5
是无效的语法。 i == i + 5
总是假的。在if flag == True
部分中,与True显式比较是多余的。 if flag
就足够了。
现在来讨论主要问题。如果你想在循环的每五次迭代中调用func
,那么你必须使用模块运算符。
while True:
if flag and i % 5 == 0:
func()
# Other stuffs that you want to run at each iteration
如果你在while循环结束时有一个中断,那么它会在第一次迭代后立即中断。理想情况下,break/continue
语句应位于if
块内。
答案 1 :(得分:1)
如果i
可以被5整除:
i % 5 == 0