如何在Python中使用sys.exit()

36 投票
6 回答
305438 浏览
提问于 2025-04-17 14:24

player_input = '' # This has to be initialized for the loop    
while player_input != 0:    
    player_input = str(input('Roll or quit (r or q)'))   
    if player_input == q: # This will break the loop if the player decides to quit            
        print("Now let's see if I can beat your score of", player)
        break
    
    if player_input != r:    
        print('invalid choice, try again')

    if player_input ==r:    
        roll= randint (1,8)    
        player +=roll #(+= sign helps to keep track of score)    
        print('You rolled is ' + str(roll))    
        if roll ==1:    
            print('You Lose :)')    
            sys.exit    
            break

我想让程序在 roll == 1 的时候退出,但什么也没发生,每次我试着用 sys.exit() 时,它都会给我一个错误信息。


这是我运行程序时看到的消息:

Traceback (most recent call last):
 line 33, in <module>
    sys.exit()
SystemExit

6 个回答

8

sys.exit() 会引发一个叫做 SystemExit 的异常,你可能会把它当成错误来处理。如果你希望你的程序在结束时不引发这个 SystemExit,而是优雅地返回,你可以把你的功能放在一个函数里,然后在你打算使用 sys.exit 的地方直接返回。

10

你在代码里没有导入sys这个模块,而且在调用函数的时候也没有把括号关上...试试看:

import sys
sys.exit()
38

我觉得你可以使用

sys.exit(0)

你可以在这里查看Python 2.7 的文档

可选的参数 arg 可以是一个整数,用来表示退出状态(默认是零),也可以是其他类型的对象。如果是整数,零被认为是“正常结束”,而任何非零的值则被认为是“异常结束”,这在命令行等环境中是这样理解的。

撰写回答