6 python
您在python中使用什么命令来终止程序?
即基本的"结束",或BASH中的"退出".
我看到"休息"会把你带出一个循环,而"退出"就会被我所不理解的"阶级"东西所束缚.我试过了
import sys
sys.exit()
Run Code Online (Sandbox Code Playgroud)
但它会显示以下错误:
Traceback (most recent call last):
File "C:\Documents and Settings\....\Desktop\current file_hand\Python_1.py", line 131, in <module>
sys.exit()
SystemExit
Run Code Online (Sandbox Code Playgroud)
它有什么解决方案吗?
nos*_*klo 12
sys.exit()
引发SystemExit
例外.
如果您没有捕获该异常,则程序结束.
既然你得到了那个输出,我不确定发生了什么,但我猜你正在捕捉所有异常并自己打印:
try:
...
except:
print exception somehow
raise
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,请不要这样做.赶上Exception
来代替:
...
except Exception:
...
Run Code Online (Sandbox Code Playgroud)
这样你就不会捕捉到不想捕获的东西(比如SystemExit
).
Chr*_*ver 11
sys.exit(错误代码)
由于某种错误,例如用户输入了错误的参数,Error_code对于正常退出将为0,对于退出为1或其他正数.
sys.exit()"在某些体系结构上未定义",(虽然它在我的Linux机器上试用时有效!)
在官方python文档这更充分说明.
所有程序和脚本遵循返回约定是一个非常好的主意.
例如,如果您运行一个从数据库中获取某些数据的脚本; 返回0并且没有输出,意味着数据库完全正常,其中没有任何内容(或者没有与您的查询匹配).返回1并且没有输出意味着数据库存在故障,整个过程应该中止,因为继续会破坏其他系统.
您还应该考虑直接退出的替代方案.return
如果将代码包装在函数中,通常也可以正常工作.(事实上,更好,因为它避免了sys.exit()的怪异.)
def main():
...do something...
if something:
return # <----- return takes the place of exit
...do something else...
main()
Run Code Online (Sandbox Code Playgroud)