我正在使用Sikuli OCR测试库。在我的Python脚本中,我正在寻找两个可能出现的图像之一。当其中一个出现时,如果选择该对象。
但是,我想让脚本结束。它没有。我已经尝试了quit()
和exit()
,但事实并非如此。除了while循环和完成脚本之外,它工作正常。
while True:
if exists ("lose.png"):
click ("lose.png")
print ("***** YOU LOSE! *****")
if exists ("win.png"):
click ("win.png")
print ("***** YOU WIN! *****")
StopIteration
quit()
答案 0 :(得分:5)
您可以使用break
退出任何循环:
while True:
if exists ("lose.png"):
click ("lose.png")
print ("***** YOU LOSE! *****")
break
if exists ("win.png"):
click ("win.png")
print ("***** YOU WIN! *****")
break
如果if
个语句都没有评估为True
,则循环继续。
StopIteration
是一个例外,通常由迭代器引发,表示它们已完成。大多数使用它的Python代码只需 catch 该异常,但如果你想提出它,请使用raise StopIteration()
语句。这样做没有意义;您的脚本未作为迭代器运行,StopIteration
异常将无法获得所需的效果。
答案 1 :(得分:0)
你总是可以这样:
status = TRUE
while status:
if exists ("lose.png"):
click ("lose.png")
print ("***** YOU LOSE! *****")
status = FALSE
if exists ("win.png"):
click ("win.png")
print ("***** YOU WIN! *****")
status = FALSE
StopIteration
quit()
答案 2 :(得分:0)
在Python中,break
用于退出循环。要退出脚本,请使用sys.exit()
。所以:
while True:
if exists ("lose.png"):
click ("lose.png")
print ("***** YOU LOSE!*****")
if exists ("win.png"):
click ("win.png")
print ("***** YOU WIN!*****")
break // Exit the loop
import sys; sys.exit() // Close the program