IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 《学习笔记94》—— # Python # 异常处理与错误 -> 正文阅读

[Python知识库]《学习笔记94》—— # Python # 异常处理与错误

1. 常见错误类型

本质上看,所有的错误都属于一个类,所有的错误的基类是BaseException

1.1 语法错误

语法错误(SyntaxError):Python程序代码不符合Python语言的语法会导致语法错误。
示例如下。

score=90.5
if score < 60
  print('不及格!')

以上代码因为if语句缺少了:所以会报语法错误。

SyntaxError: invalid syntax

常见的语法错误有:

  • 不正确的缩进;
  • 关键字遗漏或者拼错;
  • 漏掉符号,如冒号、逗号或括号等;
  • 语法上需要的地方缺少了语句。

1.2 除0错误

除0错误(ZeroDivisionError)0不能作为除数,当0作为除数时,会报错。
示例如下。

10*(1/0)

因为以上代码将0作为了除数,因此会报错。

ZeroDivisionError: division by zero

1.3 名字错误

名字错误(NameError):试图访问的变量名不存在。
示例如下。

if score > 60:
  print('恭喜你,及格了!')

因为以上代码中score变量并未声明并赋值,因此无法进行 if 语句的判断,所以会报错。

1.4 类型错误

类型错误(TypeError):当使用的变量的类型不符合要求时会报错。
示例如下。

age=18
string='张三'
print(age+string)

因为age是整型,string是字符串型,二者无法进行相加,因此会报错。

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

1.5 属性错误

属性错误(AttributeError):特性引用和赋值失败时会引发属性错误。

tuple=(1,2,3)
tuple.append(7)
print(tuple)

因为tuple属于元组,而元组没有append()这一属性方法,因此会报错。

1.6 输入输出错误

输入输出错误(IOError):无法打开指定文件。
在Python3中,IOError细分出了很多子错误,例如:FileNotFoundError等。

2. 异常处理

2.1 异常捕获

捕获异常的基本形式是:

try…except…

将可能引起异常的代码放在try子句中,如果try子句完成后发生了异常,则except子句会处理出现的异常。
except子句中可以捕获特定类型的异常。形式如下。

try:
	pass
except 异常类型 as 自定义名称:
	pass

当不知道要捕获哪些异常类时,可以使用BaseException这个基类来代替。通常情况下,也可以用Exception代替BaseException

2.2 异常清理

在最后的except子句后面添加一个else子句,当没有异常发生时,会自动执行else子句。可以理解为奖励机制。

else子句不同的是,finally子句无论有没有出现异常都会被执行。

2.3 异常触发

  1. 使用raise抛出异常。

示例如下。

try:
  score = int(input("请输入您的分数:"))
  if score<0:
    raise ValueError('出现了值异常错误!')
except ValueError as e:
  print(e)

程序在接收到一个为负的值时会抛出错误。

  1. 使用自定义异常类来抛出错误。 自定义异常类需要由Exception类或paihenglei派生。

示例如下。

class MyError(Exception):  # 自定义异常类
  def __init__(self,value):
    self.value=value

try:
  raise MyError('我自己定义的异常!')  # 抛出自定义异常类
except MyError as e:
  print(e)

3. 调试程序

这里介绍断言(assert)的用法。

断言用于判断一个表达式的值是否为True,如果为False,则assert语句本身会抛出AssertionError。
可以在断言的后面用逗号,跟一个表达式,如果断言失败(返回值为False),则输出这个表达式。

语法:

assert (condition),(error_message)

示例如下。

assert 1+2==2,'1+2=2不成立'

以上程序断言失败,输出如下。

AssertionError: 1+2=2不成立

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 22:42:56  更:2021-07-30 22:43:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:53:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码