如何在 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 开始。
有两种解决方法。
- 稍微修改您的代码:
>>> 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
- 使用
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]
我在 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 开始。
有两种解决方法。
- 稍微修改您的代码:
>>> 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
- 使用
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]