某件事完成后如何完全停止代码?

时间:2017-12-27 19:10:25

标签: python while-loop

我已经排除了os.exitsys.exit()raise SystemExit(0)quitexit()

一旦满足我的多个条件之一,我想彻底停止。

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

当我玩游戏时,游戏结束消息被打印到屏幕上,尽管被告知要停止,它仍会询问用户输入。

3 个答案:

答案 0 :(得分:1)

这就是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或"这是一条错误消息"也会有效。

答案 1 :(得分:0)

通过这些小改动,我成功地完成了这项工作:

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

请注意缺少 Not over 输出。 也许你需要_exit(<status>)

答案 2 :(得分:0)

您应该使用:

sys.exit(n)

其中可选n是具有退出状态的整数。

请检查:https://docs.python.org/2/library/sys.html