python sys.exit()、break、 exit()、quit()、os._exit()、return的区别
2017-08-16 07:57
706 查看
1.sys.exit()
函数说明:
标准的退出系统的方法。
exit([status])
退出系统,并抛出SystemExit(status)异常。
如果不传递status或传递None,默认当做0处理。
如果传递的status为数字,会被认为是系统的退出码。
如果传递的status为其他数据类型,status会被打印出来,并且系统的退出码为1.
如果不同try…except….捕获异常,并用traceback跟踪,sys.exit()方法抛出的异常是不会被发现的。但是需要注意,用try…except….抛出异常后,就不会退出系统了,会继续执行后面的语句。所以,想要退出系统时,不可以将sys.exit()方法放入ry…except….中
(1) 这三种方式sys.exit()、sys.exit(0)、sys.exit(None)意义相同,不返回退出码
此种情况下只会输出:
原因是sys.exit()方法抛出的异常不属于Exception类,所以不能打印异常信息。如果需要跟踪异常,并打印异常信息,我们需要修改捕获异常的方式,代码如下:
输出结果为:
(2) 参数为大于0的数字时, sys.exit(n)
输出结果中会带有传递的数字,将其作为退出码:
(3) 参数其他数据类型时,包括dict、list、set、str等,sys.exit(other_type)
输出结果如下:
2.os._exit(n)方法
使用环境:该方法可以用在Unix, Windows系统中。
作用:退出进程时不调用清理处理器,也不清洗stdio缓冲区,退出码为n。
Note
退出系统的标准方法是sys.exit(n)。_exit() 在通常情况下被用在退出子进程。
该方法不会抛出异常,直接退出系统。
3.exit()和quit()方法
quit([code=None])
exit([code=None])
主要用于退出交互式解释器shell,不应该被用在程序中,但也可以用于程序中。
用在程序中,如果为其捕获异常,也可以抛出SystemExit异常和退出码。不捕获则直接退出。与sys.exit()不同的是,exit(0)的退出码为0,而sys.exit(0)不输出退出码。
4.break
跳出最近的一层循环
5.return
跳出函数,并返回结果
函数说明:
标准的退出系统的方法。
exit([status])
退出系统,并抛出SystemExit(status)异常。
如果不传递status或传递None,默认当做0处理。
如果传递的status为数字,会被认为是系统的退出码。
如果传递的status为其他数据类型,status会被打印出来,并且系统的退出码为1.
如果不同try…except….捕获异常,并用traceback跟踪,sys.exit()方法抛出的异常是不会被发现的。但是需要注意,用try…except….抛出异常后,就不会退出系统了,会继续执行后面的语句。所以,想要退出系统时,不可以将sys.exit()方法放入ry…except….中
(1) 这三种方式sys.exit()、sys.exit(0)、sys.exit(None)意义相同,不返回退出码
import sys import traceback def test(): print "test in" sys.exit() print "test out" try: test() except Exception as e: print e traceback.print_exc() print "ending"
此种情况下只会输出:
test in
原因是sys.exit()方法抛出的异常不属于Exception类,所以不能打印异常信息。如果需要跟踪异常,并打印异常信息,我们需要修改捕获异常的方式,代码如下:
import sys import traceback def test(): print "test in" sys.exit() print "test out" try: test() except: traceback.print_exc() print "ending"
输出结果为:
Traceback (most recent call last): File "E:\python_program\Test_python2_7\src\exit.py", line 16, in <module> test in test() File "E:\python_program\Test_python2_7\src\exit.py", line 13, in test sys.exit() SystemExit ending
(2) 参数为大于0的数字时, sys.exit(n)
import sys import traceback def test(): print "test in" sys.exit(11111111) print "test out" try: test() except: traceback.print_exc() print "ending"
输出结果中会带有传递的数字,将其作为退出码:
Traceback (most recent call last): File "E:\python_program\Test_python2_7\src\exit.py", line 15, in <module> test in ending test() File "E:\python_program\Test_python2_7\src\exit.py", line 12, in test sys.exit(11111111) SystemExit: 11111111
(3) 参数其他数据类型时,包括dict、list、set、str等,sys.exit(other_type)
输出结果如下:
SystemExit: {'key': 'value'} 或者 SystemExit: [ 9797 'value1', 'value2'] 或者 SystemExit: set(['value2', 'value1']) 或者 SystemExit: string
2.os._exit(n)方法
使用环境:该方法可以用在Unix, Windows系统中。
作用:退出进程时不调用清理处理器,也不清洗stdio缓冲区,退出码为n。
Note
退出系统的标准方法是sys.exit(n)。_exit() 在通常情况下被用在退出子进程。
该方法不会抛出异常,直接退出系统。
3.exit()和quit()方法
quit([code=None])
exit([code=None])
主要用于退出交互式解释器shell,不应该被用在程序中,但也可以用于程序中。
用在程序中,如果为其捕获异常,也可以抛出SystemExit异常和退出码。不捕获则直接退出。与sys.exit()不同的是,exit(0)的退出码为0,而sys.exit(0)不输出退出码。
4.break
跳出最近的一层循环
5.return
跳出函数,并返回结果
相关文章推荐
- 详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- python 中 os._exit(), sys.exit(), exit() 的区别是什么?
- python中,exit,return,sys.exit()等的区别与使用方法
- python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- python中sys.exit() os._exit() exit() quit()的简单使用
- Python os._exit() sys.exit() exit()区别
- Python os._exit() sys.exit() exit()区别
- python之 sys.exit() os._exit() exit() quit()的简单使用
- python 中 os._exit(), sys.exit(), exit() 的区别
- Python中 os._exit() sys.exit() exit()区别
- Python os._exit() sys.exit() exit()区别
- python 的exit,return,sys.exit()等的区别与使用方法
- Python os._exit() sys.exit() exit()区别
- python基础之 Python os._exit() sys.exit() exit()区别
- Python中exit、return、sys.exit()等使用实例和区别
- python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
- Python中exit、return、sys.exit()等使用实例和区别
- python中os和sys模块的区别与常用方法总结