文章目录

  • 1. quit()
  • 2. exit()
  • 3. sys.exit([arg])
  • 4. os._exit(n)

函数quit(),exit(),sys.exit()和os._exit()具有几乎相同的功能,都能引发SystemExit异常,Python解释器通过该异常退出执行且不打印堆栈回溯(不把异常打印出来)。

当运行Python程序时,正常都是从上到下执行脚本中所有代码,当python解释器执行到脚本的末端就会自动退出,但是有时我们可能需要调用内建函数显示退出程序。

1.sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit(“sorry, goodbye!”); 一般主程序中使用此退出.
2. os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.
3. exit()/quit(), 跑出SystemExit异常. 一般在交互式shell中退出时使用.

在四个退出函数中,sys.exit()是最好的,因为在编程环境中不能使用exit()和quit()函数,而os._exit()只在需要立即退出这种情况下才会使用。

1. quit()

这个函数不能用在实际的代码编写环境中,只能用在编译器interpreter中。
它在后台引发SystemExit异常。 如果进行打印,它将显示一条消息:

# Python program to demonstrate quit()
for i in range(10):       # If the value of i becomes  5 then the program is forced to quit if i == 5:           # prints the quit message print(quit) quit() print(i)

期望的输出应该是这样的:

但是如果非要在python代码环境下搞。。。就是这样的

但是,如果把上述代码写到一个.py文件中,在命令行调用:

就对了,哈哈哈哈

2. exit()

就是quit()的同义表达,也是只能在解释器中使用,不能直接在代码中执行。类似于quit(),也会打印出一条信息。(确实很像,哈哈哈。)

3. sys.exit([arg])

不同于上面两个只能用在命令行中。sys.exit()只要引入了sys包,就可以直接在脚本代码中执行。arg参数一般是整数,0的话就表明"正常/成功终止"了。也可以是其他的类型的对象,比如字符串

import sys
sys.exit("Age less than 18")


可以看到,触发了 这个 SystemExit异常

如果是执行一个.py文件(不是这种逐行执行的环境),直接在pycharm里运行的话。

import sys
sys.exit("反正我退出了")


4. os._exit(n)

Python中的os._exit()方法用于以指定状态退出进程,而无需调用清除处理程序,刷新stdio缓冲区等。

注意:此方法通常在os.fork()系统调用之后的子进程中使用。 退出该进程的标准方法是sys.exit(n)方法。

主要参考:

  • geeksforgeeks——Python exit commands: quit(), exit(), sys.exit() and os._exit()
  • 知乎——python 中 os._exit(), sys.exit(), exit() 的区别是什么?
  • CSDN-python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

python中断程序执行(不抛出异常)相关推荐

  1. python读文件路径-python获取程序执行文件路径的方法(推荐)

    1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os. ...

  2. 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...

  3. Python(7)-程序执行的原理

    程序执行的原理 1.计算机中的三个核心部件 2.程序执行的原理 3.程序的作用 1.计算机中的三个核心部件 CPU:中央处理区,超大规模的集成电路,负责处理数据.计算 内存:临时存储数据,断电数据消失 ...

  4. python+selenium自动化测试环境搭建(Python+Selenium程序执行完,chrome浏览器自动关闭解决方案)

    第一步:安装python解释器 官网地址:https://www.python.org/ 我的版本是python3.9 第二步:安装pycharm编译器. 第三步:安装selenium库 1.以管理员 ...

  5. python相同程序执行结果不同_原理相同只是精简了的python代码,运行结果不同是为什么...

    deal_way = list(soup.select('div.biaoqian_li').stripped_strings) # deal_ways = soup.select('div.biao ...

  6. python导包顺序_2019-03-21 python导入包以及Python程序执行顺序理解

    http://codingpy.com/article/python-import-101/ https://segmentfault.com/a/1190000009842139 (一)Python ...

  7. python怎么退出执行/退出程序语句

    python怎么退出执行/退出程序语句 文章目录 python怎么退出执行/退出程序语句 sys.exit()函数 raise SystemExit()异常 os._exit()函数 Ctrl+C中断 ...

  8. sql crud_使用适用于SQL Server的Python SQL库执行CRUD操作

    sql crud This article covers how to connect a Python application to Microsoft SQL Server using a 3rd ...

  9. python程序执行提示音——python播放MP3文件

    python程序执行提示音设置 # !pip install playsound from playsound import playsoundif __name__ == "__main_ ...

  10. 提高python执行效率_关于提高python程序执行效率的思路和想法

    原博文 2016-06-09 22:25 − 相比编译型语言(C系列)python胜在简介的语法和优雅的动态编程体验,但是在执行效率上,python有解释性语言先天的劣势--执行效率较低,为了让编写出 ...

最新文章

  1. java script怎么用_如何在HTML中使用javascript?
  2. 判断是否Ajax请求
  3. python鸡兔同笼编程输出不存在合理答案_Python 解答鸡兔同笼和五家共井问题
  4. Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(二)
  5. VTK:小部件之BorderWidget
  6. P4555 最长双回文串
  7. django-csrftoken跨站请求伪造
  8. python基本数据类型float_Python基本数据类型
  9. wpf listBox 多列大图片效果
  10. Rsyslog的模板template详解
  11. 移动端DNUN:危险通知和用户导航
  12. linux打开mid格式音乐,mid文件扩展名,mid文件怎么打开?
  13. Quartus-ll 采用三种方法实现 D 触发器功能仿真及时序波形仿真详细步骤
  14. 中科院ICTCLAS分词汉语词性标记集
  15. 如何在机智云开发平台快速创建具有商用租赁效果的硬件产品
  16. 【数据结构与算法】数据结构+算法=程序
  17. 如何在命令行窗口运行某个文件夹下的exe程序
  18. 【Wireshark系列一】Wireshark基本用法
  19. 硬盘分区修复和碎片整理命令
  20. PCB工程分享:快速了解PCB设计入门基础知识

热门文章

  1. 【UML】状态图(statechart Diagram)
  2. 设备数据采集平台(物联网数据中台)是什么?有什么作用?
  3. jmeter与接口测试(四)之jmeter如何实现参数化
  4. Spring详解简介
  5. Java面试逻辑题分享
  6. Postman使用简介
  7. 数据倾斜常见原因和解决办法
  8. 黑盒测试方法: 从原理到实战
  9. Linux之Ubuntu入门 (四)
  10. metasploit2修改root密码和使用root账号