如何在 python 中找到 continue 语句发生的迭代

How to find the iteration in which the continue-sattement takes place in python

我在 python 中有一个 for 循环和一个 continue 语句。我想知道 continue 语句发生的迭代次数。我的意思是:

count=0
for i in range (5):
    if i == 3:
        count+=1
        continue
    print (i)

count 值告诉我 1 我在 for 循环中遇到 continue 的时间。但我想知道它在哪次迭代中,这显然是第四次迭代(在打印 0、1 和 2 之后)。实际上我可能会进入 continue 几次,这只是一个简单的例子来澄清我的问题。如果有人让我知道如何找到它,我将不胜感激。预先感谢您的帮助。

每次continue为运行,加上当前索引进行计数。最后,计数列表将包含已执行 continue 的所有索引。 count 的长度会告诉你 continue 有多少次 运行.

 if __name__ == '__main__':
        count = []
        for i in range(5):
            if i == 3:
                count.append(i+1) #because iter starts with 0
                continue
            print(i)
    print(count)
    print(len(count))

澄清

你可以把i+1改成i,这取决于你想怎么解读它。一般来说,这取决于您是否要考虑迭代是否从 0 开始。

有两种解决方法。

  1. 稍微修改您的代码:
>>> count = 0
>>> for i in range(5):
...     count += 1
...     if i == 3:
...             print(f"Loop continued at iteration {count}")
...             continue
...     print(i)
...
0
1
2
Loop continued at iteration 4
4
  1. 使用enumerate,更'pythonic'的解决方案:
>>> for iter, i in enumerate(range(5), start=1):
...     if i == 3:
...             print(f"Loop continued at iteration {iter}")
...             continue
...     print(i)
...
0
1
2
Loop continued at iteration 4
4
count=0
for i in range (5):
    if i/3 == 0:
        count+=1
        continue
    print (i)

你的代码应该是这样的,但在这段代码中 for-loop 会永远持续下去 如果你想每次都写我屏幕使用下面的代码

count=0
for i in range (5):
    if i/3 == 0:
        count+=1
        print (i)
        continue

使用 class 存储值。

class info():
    def __init__(self):
        self.counter = 0
        self.iter = []

    def increment(self):
        self.counter += 1


a = info()
for i in range(5):
    a.increment()
    if i%2: 
        if i!=5:
            a.iter.append(i+1)
        continue
print(a.counter, a.iter)

5 [2, 4]

参见:https://ide.geeksforgeeks.org/3WrtCiH2PD