在python中使用条件计数器
假设我有以下代码:在python中使用条件计数器,python,if-statement,conditional-statements,Python,If Statement,Conditional Statements,假设我有以下代码: i=0 while True: if flag==True and i=i+5: func() . . . i+=1 break 不应该是i==i+5 我想每运行5次func()。如果I可被5整除: i % 5 == 0 i=i+5始终为真,除非先前的i值为-5。但是,如果i=i+5,则是无效语法i==i+5始终为false。在if flag==True中,与True进行显式比较的部分是冗余的如果标志足够 现
i=0
while True:
if flag==True and i=i+5:
func()
.
.
.
i+=1
break
不应该是i==i+5
我想每运行5次
func()
。如果I
可被5整除:
i % 5 == 0
i=i+5
始终为真,除非先前的i
值为-5
。但是,如果i=i+5,则是无效语法i==i+5
始终为false。在if flag==True
中,与True进行显式比较的部分是冗余的<代码>如果标志
足够
现在进入主要问题。如果要在循环的每五次迭代中调用func
,则必须使用modules运算符
while True:
if flag and i % 5 == 0:
func()
# Other stuffs that you want to run at each iteration
若在while循环的末尾有一个中断,那个么它将在第一次迭代后立即中断。理想情况下,
break/continue
语句应该位于if
块中。i==i+5
从定义上讲永远不会是真的。您需要为计数器和当前步骤设置单独的变量。在循环的5次迭代期间,flag
是真的(您说它必须运行5次),还是在循环期间可能会更改?顺便说一句:i=i+5在某种情况下是非法的(在Python中,它是合法的,并且是非常讨厌的bug的来源)。不要写if(flag==True):
,只要写if-flag:
。