刻意练习:Python基础 -- Task08. 异常处理
背景
我们准备利用17天时间,将 “Python基础的刻意练习” 分为如下任务:
- Task01:变量、运算符与数据类型(1day)
- Task02:条件与循环(1day)
- Task03:列表与元组(2day)
- Task04:字符串与序列(1day)
- Task05:函数与Lambda表达式(2day)
- Task06:字典与集合(1day)
- Task07:文件与文件系统(2day)
- Task08:异常处理(1day)
- Task09:else 与 with 语句(1day)
- Task10:类与对象(2day)
- Task11:魔法方法(2day)
- Task12:模块(1day)
这是我的 08/12 次任务的打卡内容。欢迎大家加入社群一起学习打卡。
我学习 Python 的思路是,先去熟悉 Python 的整体语法框架与自己熟悉的编程语言进行知识点的连接,后面遇到问题再来慢慢补充,慢慢形成自己的知识结构。
关于我们 “基础算法刻意练习活动” 的复盘可以参见图文:对“基础算法(LeetCode)刻意练习活动”的复盘,后面我们还会组织一系列活动,欢迎大家参与,一起来刻意练习啊。
Python 基础语法
运行期检测到的错误被称为异常。
1. Python标准异常总结
2. try - except 语句
try:检测范围
except Exception[as reason]:出现异常后的处理代码
try 语句按照如下方式工作:
- 首先,执行
try
子句(在关键字try
和关键字except
之间的语句) - 如果没有异常发生,忽略
except
子句,try
子句执行后结束。 - 如果在执行
try
子句的过程中发生了异常,那么try
子句余下的部分将被忽略。如果异常的类型和except
之后的名称相符,那么对应的except
子句将被执行。最后执行try
语句之后的代码。 - 如果一个异常没有与任何的
except
匹配,那么这个异常将会传递给上层的try
中。
Sample01:
try:f = open('test.txt')print(f.read())f.close()
except OSError:print('打开文件出错')
Sample02:
try:f = open('test.txt')print(f.read())f.close()
except OSError as error:print('打开文件出错\n原因是:' + str(error))
一个try
语句可能包含多个except
子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
try:int("abc")s = 1 + '1'f = open('test.txt')print(f.read())f.close()
except OSError as error:print('打开文件出错\n原因是:' + str(error))
except TypeError as error:print('类型出错\n原因是:' + str(error))
except ValueError as error:print('数值出错\n原因是:' + str(error))
一个 except
子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。
try:int("abc")s = 1 + '1'f = open('test.txt')print(f.read())f.close()
except (OSError, TypeError, ValueError) as error:print('出错了!\n原因是:' + str(error))
3. try - except - finally 语句
try:检测范围
except Exception[as reason]:出现异常后的处理代码
finally:无论如何都会被执行的代码
不管try
子句里面有没有发生异常,finally
子句都会执行。
如果一个异常在try
子句里被抛出,而又没有任何的except
把它截住,那么这个异常会在finally
子句执行后被抛出。
def divide(x, y):try:result = x / yprint("result is", result)except ZeroDivisionError:print("division by zero!")finally:print("executing finally clause")divide(2, 1)
# result is 2.0
# executing finally clause
divide(2, 0)
# division by zero!
# executing finally clause
divide("2", "1")
# executing finally clause
# TypeError: unsupported operand type(s) for /: 'str' and 'str'
4. raise语句
Python 使用raise
语句抛出一个指定的异常。
try:raise NameError('HiThere')
except NameError:print('An exception flew by!')# An exception flew by!
总结
好了,到此为止有关于 异常处理 部分就介绍完了,大家要根据上面的例子多多体会,只有刻意练习才能掌握一门技术,没有捷径的,加油啊!See You!
参考文献:
- https://www.runoob.com/python3/python3-tutorial.html
- https://www.bilibili.com/video/av4050443
相关图文:
- 资料分享:数学建模资料分享 – 图论部分
- 资料分享:数学建模资料分享 – 神经网络部分
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 实现 误差反向传播 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?
刻意练习:Python基础 -- Task08. 异常处理相关推荐
- python基础之异常处理
python基础之异常处理 参考文章: (1)python基础之异常处理 (2)https://www.cnblogs.com/zhangyux/p/6108026.html (3)https://w ...
- Python基础:异常处理
Python基础:异常处理 一,学习的内容 Python 异常处理 异常就是运行期检测到的错误.计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序 ...
- python基础语法-异常处理
python中的异常处理 类似于java 开发中很常用 异常处理的好处 大大减少了由于异常程序崩溃的发生. 三个基本语句 try:在try语句后放入可能出现问题的代码,没有问题正常执行 except: ...
- Python基础06-Python异常处理
Python异常处理 异常处理概述 异常处理实战 异常处理,如果异常不处理,比如爬虫爬到一半,变奔溃了 ''' Python异常处理 ''' try:print("My")prin ...
- python基础(part14)--异常处理
鄙人学习笔记 开发工具:Spyder 文章目录 异常处理 异常 异常处理 举个例子1 举个例子2 raise语句 案例 自定义异常 案例 异常处理 我们先以一个例子为开头 代码: 控制台输入5,则正常 ...
- python基础之异常处理、面向对象
异常处理 当代码运行出错时,程序会终止.code就不是0了,而是-1或者1,不是正常结束. 程序碰到异常又没有捕获到,没有做相应的处理,程序会崩溃. 如果不做异常处理,执行到一些容易出错的位置,可能代 ...
- python基础知识 ~ 异常处理与导入
一 错误种类 1 语法错误 2 规则错误 二 错误内容举例 TypeError NameError KeyError JSONDecodeError等 三 标准模板 ...
- Python基础——try(异常处理)
文章目录 1.try...except.. 2.try...except...else 1.try-except- 输出错误:try:, except - as -: 看如下代码 try:file = ...
- 刻意练习:Python基础 -- Task12. 模块
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
最新文章
- Redis 笔记(13)— scan 和 keys 寻找特定前缀key 字段(命令格式、使用示例、定位大key)
- 《数据科学家养成手册》第十一章----算法学(非线性回归)
- PCIE BAR空间
- python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
- haproxy负载均衡_使用haproxy搭建web集群
- Oracle连接字符串记录
- 用python写三角形_python写个三角形的问题
- 2020年Q3笔记本电脑出货量:惠普反超联想居首位 苹果第四
- 圆台下料展开计算方法_冲压件展开计算方法(二),转发给每一位冲压人
- S2A哨兵数据的波段合成、镶嵌、TOA(大气表观反射率)和裁剪的操作
- 还想呆在公司养老?别做梦了
- 2020数学建模B题
- 在Qt下使用映美精黑白相机:Qt 5.12 + ImagingSource(映美精)+ vs2017 Community + OpenCV 3.3
- python汉语词频统计软件_python实现简单中文词频统计示例
- 奥本大学计算机专业GRE成绩,美国大学GRE分数要求汇总贴,你的目标学校要求多少分?...
- 当红小生酒店施暴性感女星
- laravel集合函数-pluck()
- 格式化后如何恢复数据?
- 非阻塞recvfrom的设置
- 使用python实现微博评论分词与关键词提取(从MySQL数据库中读取数据)