首页 > 编程语言 >python基础(10异常处理)

python基础(10异常处理)

时间:2024-08-26 22:57:33浏览次数:5  
标签:__ 10 python except try print 异常

python系列文章目录

python基础(01变量&数据类型&运算符)
python基础(02序列共性)
python基础(03列表和元组)
python基础(04字符串&字典)
python基础(05集合set)
python基础(06控制语句)
python基础(07函数)
python基础(08类和对象)
python基础(09闭包&装饰器)


文章目录

  • python系列文章目录
  • 前言
  • 一、引导问题
  • 二、结构
    • 1.try...一个except结构
    • 2.try...多个except结构
    • 3.try...except..else结构
    • 4.try...except..else..finally结构
  • 三.常见异常
  • 四.自定义异常类
  • 总结


前言

本文主要讲python中的异常处理,一次性说清python中异常处理的用法。相对来说比较好理解,如果你从第一篇文章学到了这里,那么恭喜你,python基础,你已经挑战了自己!


一、引导问题

  • python中,引进了很多类用来描述和处理异常的类,叫异常类
  • BaseException 所有异常的父类
  • exception 所有异常的基类
  • IOError:打开不存在的文件
  • IndexError:不存在的索引
  • keyError:字典中,用不存在的key
  • NameError:找不到变量名
  • SyntaxError:代码语法错误
  • 异常也采用对象的方式来处理,处理过程:1、抛出异常 2、捕获异常

二、结构

1.try…一个except结构

代码语法:

  • try:包含可能引发异常的代码 except:用来捕捉和处理发生的异常 如果try没引发异常,跳过- except块继续执行后续代码
  • 如果try发生了异常,跳过try块中的后续代码,跳到相应的except块中处理异常,处理完,继续执行后续代码
  • e:产生的异常原因
try:
   被监控的可能引发异常的语句块
except  BaseException[as e]:
   异常处理语句块

例子1:

try:
   print("step1")
   a=3/0
   print("step2")
except BaseException as e:
   print("step3")
   print(e)
print("后续代码")
-------------------------------
step1、step3、异常信息、后续代码

例子2:

题目:循环输入数字,不是数字抛出异常,处理异常,输入88,结束循环

//简单实现
while True:
   x=int(input("请输入一个数字:"))
   if x==88:
       print("结束循环")
       break

//异常信息实现
while True:
   try:
       x=int(input("请输入一个数字:"))
       if x==88:
           print("88结束循环")
           break
   except BaseException as e:
       print(e)
print("循环结束")

2.try…多个except结构

代码语法:


先子类后父类
try:
   被监控的 可能引发异常的语句块
except Exception1:
   处理Exception1的语句块
except Exception2:
   处理Exception2的语句块
......
except BaseException:
   处理可能遗漏的异常的语句块

例子:


try:
    a=input("请输入一个被除数:")
    b=input("请输入一个除数:")
    c=float(a)/float(b)
    print(c)
except ZeroDivisionError:
    print("异常:不能除以0")
except ValueError:
    print("异常:不能将字符串转化成数字")
except NameError:
    print("异常:变量不存在")
except BaseException as e:
    print(e)


3.try…except…else结构

解释说明:

如果try块中没抛出异常,则执行else块,如果try抛出异常,则执行except块,不执行else

例子:


try:
    a=input("请输入被除数:")
    b=input("请输入除数:")
    c=float(a)/float(b)
except BaseException as e:
    print(e)
else:
    print("计算结果是:",c)

4.try…except…else…finally结构

解释说明:

finally无论是否发生异常,都会被执行,通常用来释放try块中申请的资源

例子:


try:
    a=input("请输入被除数:")
    b=input("请输入除数:")
    c=float(a)/float(b)
except BaseException as e:
    print(e)
else:
    print("计算结果是:",c)
finally:
    print("finally都会执行")
print("程序结束")

三.常见异常

1、SyntaxError:语法错误
 int a=3

2、NameError:尝试访问一个没有申明的变量
print(a)

3、ZeroDivisionError:除数为0错误(零除错误)
 a=3/0

4、ValueError:数值错误
 float("jiajia")  #字符串没法转化浮点数

5、TypeError:类型错误
 123+"abc"

6、AttributeError:访问对象不存在的属性
 a=100
 a.sayhi()

7、IndexError:索引越界异常
 a=[4,5,6]
 a[10]

8、KeyError:字典的关键字不存在
 a={"name":"jiajia"}
 a["abc"]


四.自定义异常类

说明:

  • 程序开发中,有时候也需要自己定义异常类,自定义异常类一般都是运行时异常
  • 通常继承Exception或者其子类即可,命名一般以Error,Exception
  • 自定义异常由raise语句主动抛出

例子:

题目:写一个类 不符合的年龄抛出异常

#方法
class AgeError(Exception):  #继承Exception
    def __init__(self,errorInfo):  #继承这个类的属性
        Exception.__init__(self)
        self.errorInfo=errorInfo
    def __str__(self):
        return "年龄错误"```


#测试代码
if __name__=="__main__":    #如果为true,则模块是作为独立文件运行,可以执行测试代码
    age=int(input("输入一个年龄:"))
    if age<1 or age>150:
        raise AgeError(age)
    else:
        print("正常年龄")
   
   
 #测试结果
 输入一个年龄:200
Traceback (most recent call last):
  File "D:\ody\study\python\code\code2\5.01.py", line 211, in <module>
    raise AgeError(age)
__main__.AgeError: 年龄错误


总结

本文比较好理解,欢迎评论区交流,后续持续更新。

标签:__,10,python,except,try,print,异常
From: https://blog.csdn.net/m0_55605424/article/details/141573868

相关文章

  • 06、Python爬虫——前端JS相关知识(一)
    前端JS相关三元运算v1=条件?值A:值B;res=1===1?99:88#res=99如果条件成立则返回冒号前的那个值,如果条件不成立则返回冒号后面那个值 特殊的逻辑运算v1=1===1||2===2这种运算是比较运算+或运算,在或(||)的前面和后面都是比较运算,前后的返回值都是ture......
  • python实例演示贝叶斯定理在机器学习中的应用
    贝叶斯定理是一种概率论中的基本公式,用于计算在已知条件下事件发生的概率。它的通俗解释可以理解为:当你获得新信息时,如何更新对某个事件发生概率的判断。贝叶斯定理公式贝叶斯定理的数学表达式是:P(A∣B)=P(B∣A)⋅P(A)P(B)P(A|B)=\frac{P(B|A)\cdotP(A)}{P(B)}P(A∣B)=P......
  • 加减法| python矩阵运算(学习笔记一)
    python的数学运算部分基本都在使用numpy模块,如果初次使用python,安装该模块最简单的办法就是:搜索框输入cmd打开命令提示符,输入以下代码等待安装即可。pipinstallnumpy如果不确定是否安装好,打开pycharm(此处默认为已经安装该软件),输入以下代码:importnumpyasnp之后即可定......
  • 新手专科准大一学习c语言的第10天之strcpy、memset、自定义函数的学习与应用
    strcpystrcpy是C语言标准库中的一个字符串操作函数,用于将源字符串复制到目标字符串中。#include<stdio.h>#include<string.h>intmain(){chararr1[50];//确保目标数组足够大,能够容纳源字符串chararr2[]="helloworld";//源字符串......
  • python+flask计算机毕业设计电影网站系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络娱乐已成为人们日常生活中不可或缺的一部分,其中电影作为重要的文化娱乐形式,......
  • python+flask计算机毕业设计高校宿舍信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及与校园规模的不断扩大,高校宿舍作为学生日常生活与学习的重要场所,其管理效率与质量直接关系到学生的安全、健康及学习环......
  • python+flask计算机毕业设计高校科研申报系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育事业的蓬勃发展,高校科研活动日益频繁且复杂多样,成为推动科技进步和社会发展的重要力量。然而,传统的科研申报与管理模式往往依......
  • python+flask计算机毕业设计基于的地铁售票系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,地铁作为现代城市公共交通的重要组成部分,其便捷性、高效性和环保性日益凸显。然而,传统的地铁售票方式往往面临排队时......
  • python+flask计算机毕业设计餐厅快捷就餐系统(程序+开题+论文)
    校园二手货物交易平台m1a2o本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快,人们对餐饮服务的效率与便捷性提出了更高要求。传统餐厅的就餐流程往往存在排队等候时......
  • python+flask计算机毕业设计关于梦想的贴吧系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息爆炸的时代,网络社交平台已成为人们分享生活、交流思想的重要场所。随着个人成长与自我实现的追求日益增强,人们越来越渴望找到一个能......