Python学习之异常处理
具体网址详见https://www.runoob.com/python/python-exceptions.html
什么是异常?
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
语法:
以下为简单的try....except...else的语法:
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
ry的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
- 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
- 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
- 如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
实例
要求:1.询问年龄;2.年龄小于18岁时,输出"不可以喝酒";3.年龄>=18岁时,不输出结果;4.当未输入数字时,输出“你输入的不是数字”,并要求重新输入年龄。
while True:try:age = int(input('你今年几岁了?'))breakexcept ValueError:print('你输入的不是数字!')if age < 18:print('不可以喝酒噢')
再以一个例子具体呈现一下
这个除法计算器需要包含的报错信息有:输入了非数值(即不属于整数和浮点数)、被除数为零以及变量不存在。
print('\n欢迎使用除法计算器!\n')while True:try:x = input('请你输入被除数:')y = input('请你输入除数:')z = float(x)/float(y)print(x,'/',y,'=',z)break # 默认每次只计算一次,所以在这里写了 break。except ZeroDivisionError: # 当除数为0时,跳出提示,重新输入。print('0是不能做除数的!')except ValueError: # 当除数或被除数中有一个无法转换成浮点数时,跳出提示,重新输入。print('除数和被除数都应该是整值或浮点数!')# 方式2:将两个(或多个)异常放在一起,只要触发其中一个,就执行所包含的代码。# except(ZeroDivisionError,ValueError):# print('你的输入有误,请重新输入!')# 方式3:常规错误的基类,假设不想提供很精细的提示,可以用这个语句响应常规错误。# except Exception:# print('你的输入有误,请重新输入!')
Python学习之异常处理相关推荐
- python学习总结----异常处理
python学习总结----异常处理 相关概念- 错误:程序运行之前的语法错误,如:关键字.缩进不齐.括号不成对. - 异常:在程序运行过程中出现的问题,如:除数为0.对象属性不存在等.异常处理- 说 ...
- Python学习笔记-异常处理
异常处理 Python Errors and Exceptions 官方文档 引发异常: 语法: 使用raise 关键字, raise either an exception instance or ...
- Python学习13 异常处理机制
概括 常见的异常 异常处理机制 可以多个异常放在元组里面 一旦产生异常,try后面的语句不会继续执行,会做异常处理 异常使用场景1 close应该放在finally中 异常使用场景2 finally关 ...
- 【Python学习笔记】超详细Python快速入门教程(下)
文章目录 031 变量的作用域 032 递归函数 033 异常处理机制 034 class自定义类 035 object内置类 036 多态 037 特殊方法和属性 038 类的深拷贝和浅拷贝 039 ...
- Python学习笔记之类型判断,异常处理,终止程序操作小结
Python学习笔记之类型判断,异常处理,终止程序操作小结 运行结果: 这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发. 爬虫.数据分析.数据可视化.机 ...
- Python学习笔记(十三):异常处理机制
Python学习笔记(十三):异常处理机制 关于Python的异常处理机制 Python学习笔记(十三):异常处理机制 一.异常处理机制 常见异常类型 二.异常处理 try...except 异常类的 ...
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- Python学习,约束和异常处理
一.类的约束 首先,你要清楚,约束是对类的约束,比如,现在你是一个项目经理,然后呢,你给手下的人分活,张三你处理一下普通用户登录,李四你处理一下会员登录,王五已处理一下管理员登录,那这个时候呢他们就开 ...
- 【Python学习教程】Python异常处理机制
文章目录 什么是异常处理,Python常见异常类型(入门必读) Python语法错误 Python运行时错误 Python异常处理机制到底有什么用? Python try except异常处理详解(入 ...
最新文章
- Django入门项目实践(中)
- Subsequence Hate CodeForces - 1363B(前缀和+dp)
- 修改FTP服务器端口后无法访问
- 工单发料,退料等一些物料的移动
- python调用darknet
- 查看 mysql端口 和进程_mysql 端口号(怎么查看mysql的端口号)
- 烽火HG680-KA机顶盒 卡开机界面、救砖、强刷失败、ADB教程及固件分享
- 泰坦尼克 数据集_Kaggle-泰坦尼克-学习心得(高分容易,理解很难)——第1篇...
- 手机谷歌浏览器设置不阻止弹窗弹出
- 常用合同范本大全|全部是合同,多学学吧。以后少吃亏。
- 浅谈权限设计(从接口权限到数据权限)
- java毕业生设计二手物品交易系统计算机源码+系统+mysql+调试部署+lw
- springboot中格林尼治时间转指定格式时间
- 微信公众平台服务号与订阅号区别详解【有图】
- App应用中拨打电话
- 打印机与电脑显示不连接到服务器,网络打印机无法连接怎么办?网络打印机设置步骤...
- GF( p^n) 伽罗瓦域
- Redis 单机集群搭建步骤(五)
- Fabric 1.0源代码分析(25) Orderer
- 【PHP-CTF】无字母无数字webshell
热门文章
- 沙盒软件-软件多开-命令行-运行参数-进程通信-运行和评估
- fabric运维监控:prometheus配置热更新
- atmega16 c语言编程,ATMEGA16读写iic(24c02) C语言程序 测试通过
- linux部分文件自动安装失败,linux下通过脚本文件自动安装虚拟机
- 【网友评出的得分最高的100部电影】你有多少部没看过?留着找时间看咯!!
- TiDB体系结构之TiDB Server
- android 应用强制停止
- iSubtitle 3.2.3 视频字幕制作
- 从p_json中获得register和index序号的关系
- 吴恩达机器学习(二十九)大规模机器学习