Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法检测python中的循环是否已停止_Python_For Loop_If Statement - Fatal编程技术网

有没有办法检测python中的循环是否已停止

有没有办法检测python中的循环是否已停止,python,for-loop,if-statement,Python,For Loop,If Statement,我正在尝试检测循环何时停止,以便使用if语句:if“the loop has stopped”:print(text) 代码: 您可以将用于。。。else为您的特定用例构建。看起来像 for循环还有一个我们大多数人都不熟悉的else子句。else子句在循环正常完成后执行。这意味着循环没有遇到break语句。一旦你知道在哪里使用它们,它们真的很有用。一、 我自己,后来知道了很多 常见的构造是运行循环并搜索项目。如果找到该项,我们将使用break语句中断循环。循环可能会在两种情况下结束。第一个是当找

我正在尝试检测循环何时停止,以便使用if语句:if“the loop has stopped”:
print(text)

代码:


您可以将
用于。。。else
为您的特定用例构建。看起来像

for
循环还有一个我们大多数人都不熟悉的
else
子句。
else
子句在循环正常完成后执行。这意味着循环没有遇到
break
语句。一旦你知道在哪里使用它们,它们真的很有用。一、 我自己,后来知道了很多

常见的构造是运行循环并搜索项目。如果找到该项,我们将使用break语句中断循环。循环可能会在两种情况下结束。第一个是当找到项目并且遇到
break
时。第二种情况是循环结束时不会遇到break语句。现在我们可能想知道其中哪一个是循环完成的原因。一种方法是设置一个标志,然后在循环结束后检查它。另一个是使用else子句

这是for/else循环的基本结构:

for item in container:
    if search_something(item):
        # Found it!
        process(item)
        break
else:
    # Didn't find anything..

您可以将
用于。。。else
为您的特定用例构建。看起来像

for
循环还有一个我们大多数人都不熟悉的
else
子句。
else
子句在循环正常完成后执行。这意味着循环没有遇到
break
语句。一旦你知道在哪里使用它们,它们真的很有用。一、 我自己,后来知道了很多

常见的构造是运行循环并搜索项目。如果找到该项,我们将使用break语句中断循环。循环可能会在两种情况下结束。第一个是当找到项目并且遇到
break
时。第二种情况是循环结束时不会遇到break语句。现在我们可能想知道其中哪一个是循环完成的原因。一种方法是设置一个标志,然后在循环结束后检查它。另一个是使用else子句

这是for/else循环的基本结构:

for item in container:
    if search_something(item):
        # Found it!
        process(item)
        break
else:
    # Didn't find anything..

如果您能发布完整的代码/至少是您在问题细节中提到的循环,我将不胜感激

我认为在python中没有检测循环是否结束的方法。
如果您想检查for循环是否完全从范围i到n没有任何问题,那么可以使用范围函数的(max-1)检查迭代器值。如果for循环中间有break语句或任何其他问题导致循环突然终止,则迭代器值将小于范围函数的(max-1)

如果您能发布完整代码/至少是问题详细信息中提到的循环,我将不胜感激

我认为在python中没有检测循环是否结束的方法。
如果您想检查for循环是否完全从范围i到n没有任何问题,那么可以使用范围函数的(max-1)检查迭代器值。如果for循环中间有break语句或任何其他问题导致循环突然终止,迭代器值将小于范围函数的(max-1)

,正如其他人在评论中所说,一旦
for
循环通过
faces
中的每个
,它将继续执行代码。你不需要做任何特殊的事情来让它停止循环,除非你有理由提前中断这个过程(在它通过每个
面之前)

因此,您只需要在语句末尾取消缩进

我想你可能想要这个:

faces=检测器(灰色)
对于面中的面:
x、 y=face.left(),face.top()
x1,y1=面。右(),面。下()
矩形=cv2。矩形(帧,(x,y),(x1,y1),(0,255,0),2)
#这将在for循环完成后运行
cv2.putText(框架,“休眠”(50150),字体,7,(0,0255))

正如其他人在评论中所说,一旦
for
循环通过
faces
中的每个
,它将继续执行代码。你不需要做任何特殊的事情来让它停止循环,除非你有理由提前中断这个过程(在它通过每个
面之前)

因此,您只需要在语句末尾取消缩进

我想你可能想要这个:

faces=检测器(灰色)
对于面中的面:
x、 y=face.left(),face.top()
x1,y1=面。右(),面。下()
矩形=cv2。矩形(帧,(x,y),(x1,y1),(0,255,0),2)
#这将在for循环完成后运行
cv2.putText(框架,“休眠”(50150),字体,7,(0,0255))

这是可以做到的;但不清楚你为什么要这么做

如果有充分的理由在循环中检测循环的状态,您可以避免使用
for
循环,并通过
iter
函数将iterable(faces)转换为迭代器来手动迭代。您将知道迭代器何时结束-当您调用
next
时,您将得到一个
StopIteration
异常

for
循环只是该操作的语法糖,使用起来容易得多


我很好奇,为什么您要这样做,而不是让
for
循环结束,然后在循环结束后在线路上做您需要的事情

这是可以做到的;但不清楚你为什么要这么做

如果有充分的理由在循环中检测循环的状态,您可以避免使用
for
循环,并通过
i将iterable(faces)转换为迭代器来手动迭代