python try语句相关使用(try/except/else/finally)
1、try - except
作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。
意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题:
很明显,我们并没有定义b, 就将它赋值给a, 现在我们运行如下:
不出所料提示NameError, 发现错误就报错,不再执行下面的程序。
现在我们用try/except写一下:
打印:
我们从这个例子可以试着去推测这段代码的执行过程:
(1)先执行try代码块, 发现了错误。
(2)执行except代码块。
(3)程序向下执行。
可能有疑问try block发现异常前后正常的的部分会被执行吗,可以测试一下:
打印:
结论:
(1)先执行try block, 直到发现了错误,不再执行异常之后的代码。
(2)执行except block.
(3)向下继续。
现在已经对try/excepy有了感性的了解,接下来拓展它的用法:
简单来说,在try/except语句中,可以用多个except.
例子:
这里使用了两个except, 可以发现except 后面跟了SyntaxError, NameError, 这个我们经常见过的两个系统报错,当然这里可以改成任何系统错误(参见python标准异常)。执行:
可见,当try代码块执行出现异常,在except中匹配到了NameError的异常,则执行了对应except的语句。
新的疑问,若所有except都没有匹配呢,测试如下:
我们将NameErro改成了SystemExit,打印:
发现又回到了开始,说明这样的try/except等于是废的。。。
所以避免没有匹配到异常,又中断程序,将代码修改如下:
即又加了一条except, 这条except后面没有加系统错误,打印:
OK,get it.
2、try-except-else
举个例子:
打印:
可见,有异常时,else block时不执行的。
那,无异常时:
打印:
可见,无异常时else block执行。
至此可以写出try/except/else的格式
--------------------------------------------------------------------------------
try:
try block
except ERROR1:
except ERROR1 block
except ERRPR2:
except ERROR2 block
......
except:
except block
else:
else block
-----------------------------------------------------------------------------
当然, 这些测试只是看到语句的功能,具体的实现内部原理再说吧, 一开始看那些得把人搞晕。
3、try-finally
作用: 无论try语句是否有异常,最后都要执行的代码。
例子:
错是有的,先执行完finally block, 然后回到try block报错。
当然 try, except, else, finally是可以全部组合在一起用的。
相关文章
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- python应用-已知三角形的边长求他的面积和周长
- 详解用python实现简单的遗传算法
- 【NLP】Python NLTK 走进大秦帝国
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
- 【Python五篇慢慢弹(4)】模块异常谈python
- Centos 6.4 安装Python 2.7 python-pip
- 蓝桥杯 跑步训练python实现
- Python Django 常用字段类型
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python之matplotlib:基于matplotlib库利用python语言实现一张画布显示多张图的多种方法
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)
- 已解决苹果MacOS系统安装使用Python和pip工具安装第三方模块
- 〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - INSERT语句
- 对于为什么学python的小介绍~
- 超详细,Python库 Bokeh 数据可视化实用指南
- python自动化测试学习-Python测试框架之unittest和pytest
- 教你用Python写一个京东自动下单抢购脚本(Python实现京东自动抢购)
- 5. Python大法之告别脚本小子--各类URL采集器编写
- python基础===jieba模块,Python 中文分词组件
- 自己写的Python数据库连接类和sql语句拼接方法
- Python 小白从零开始 PyQt5 项目实战(6)窗口切换的堆叠布局
- Python: 爬虫入门-python爬虫入门教程(非常详细)
- 【Python基础】python爬虫之异步网络爬虫ǃ
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- python工具方法 33 基于lossFusion类实现多个loss的集成
- 第37讲:Python if-elif-else流程控制语句核心概念以及案例演示