一旦某件事情完成,我该如何完全停止代码?
我已经排除了os.exit
,sys.exit()
,raise SystemExit(0)
,quit
和exit()
。一旦某件事情完成,我该如何完全停止代码?
我想完全停止,一旦我的多个条件都满足了。
while x:
#do something
#for loop
#if a:
#do something
print "Game over"
os.exit
#elif b:
#do something
print "Game over"
os.exit
break
while y:
#(...same form as the previous one^)
#get user input for the next turn
#while 1
#...
#while n
当我玩游戏,而游戏在消息被打印到屏幕上,它仍然是用户输入尽管被告知停止问。
这是怎么sys.exit()应该工作。如果您导入并达到它,Sys.exit()应该可以工作。也许更多的故障排除信息会有帮助?这适用于Python和python3
#!/usr/bin/env python
import sys
while 1==1:
print("This will print")
if 2==2:
print("This will also print")
sys.exit()
print("This will not print")
print("This will not print")
这是我的终端输出:
Matts-MacBook-Pro:Desktop mw$ ./stupid.py
This will print
This will also print
编辑。
正如@goosfraba所说,sys.exit(0)可能是最佳实践。提供的The link表示没有参数可以有未定义的行为。像1或“这是一个错误信息”的另一个参数也会起作用。
解决!谢谢。顺便说一下,不错的文件名。 – user7091717
有了这些小改动,我设法使这项工作:
import os
while True:
#do something
#for loop
if False:
#do something
print "Game over A"
os._exit(0)
elif True:
#do something
print "Game over B"
os._exit(0)
break
print "Not over"
输出:
Game over B
注缺乏不高于输出。 或许你需要_exit(<status>)
?
虽然技术上有效,但常规的“sys.exit”也应该如此。有'os._exit'的合法用途,但在这里使用它似乎是一个坏主意。 – user2357112
很抱歉,我知道有人投下我的回应,因为它与你的相似。问题是我仍然在输入我的解决方案,但你已经发布了你的解决方案。但是,如果你看看上面的评论,我确实提到了“if else”语句的使用 – Onyambu
如果您有与您的答案有关的评论,请将其发布到那里,而不是在这里。我不是那个倒票的人。 – Prune
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。在发布您的MCVE代码并准确描述问题之前,我们无法为您提供有效的帮助。 我们应该能够将发布的代码粘贴到文本文件中,并重现您描述的问题。 – Prune
如果使用'else if','while'循环将在'elif'内,这种情况下会自动中断。 – Onyambu
为什么不能使用'sys.exit()'? –