在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: