当前位置:首页 > 编程技术 > 正文内容

Python 错误类型

yc8881年前 (2023-08-15)编程技术289

Python 错误类型

Python 程序中最常见的错误原因是某个语句不符合规定的用法。这种错误称为语法错误。Python 解释器会立即报告它,通常会附上原因。

Example: Error

>>> print "hello"SyntaxError: Missing parentheses in call to 'print'. Did you mean print("hello")?

在 Python 3.x 中,print 是一个内置函数,需要括号。上面的语句违反了这种用法,因此会显示语法错误。

但是很多时候,程序在运行后会导致错误,即使它没有任何语法错误。这种错误是运行时错误,称为异常。Python 库中定义了许多内置的异常。让我们看看一些常见的错误类型。

下表列出了 Python 中重要的内置异常。

例外描述
断言错误assert 语句失败时引发。
属性错误对属性赋值或引用引发的。
欧费罗当 input()函数达到文件结束条件时引发。
浮动指针错误浮点运算失败时引发。
GeneratorExit调用生成器的 close()方法时引发。
导入错误找不到导入的模块时引发。
索引错误当序列的索引超出范围时引发。
键错误在字典中找不到键时引发。
键盘中断当用户点击中断键(Ctrl+c 或 delete)时引发。
存储器错误当操作耗尽内存时引发。
名称错误当在局部或全局范围内找不到变量时引发。
notimplemontederror由抽象方法引发。
操作系统错误当系统操作导致系统相关错误时引发。
OverflowError当算术运算的结果太大而无法表示时引发。
报错当弱引用代理用于访问垃圾回收引用时引发。
运行时错误当错误不属于任何其他类别时引发。
停止迭代由 next()函数引发,表示迭代器不再返回任何项。
句法误差遇到语法错误时由解析器引发。
内建 Error当缩进不正确时引发。
TabError当缩进由不一致的制表符和空格组成时引发。
系统误差解释器检测到内部错误时引发。
系统退出由 sys.exit()函数引发。
类型错误当函数或操作应用于不正确类型的对象时引发。
unboundlocalherror当引用函数或方法中的局部变量,但没有值绑定到该变量时引发。
UnicodeError 错误发生与 Unicode 相关的编码或解码错误时引发。
unicodeencodererror编码过程中出现与 Unicode 相关的错误时引发。
unicodedecodererror解码过程中出现与 Unicode 相关的错误时引发。
unicode 翻译错误当转换过程中出现与 Unicode 相关的错误时引发。
值错误当函数获得类型正确但值不正确的参数时引发。
零分割错误当除法或模块运算的第二个操作数为零时引发。

索引错误

试图访问无效索引处的项目时会抛出IndexError

Example: IndexError

>>> L1=[1,2,3]>>> L1[3]Traceback (most recent call last):File "<pyshell#18>", line 1, in <module>L1[3]IndexError: list index out of range

ModuleNotFoundError

找不到模块时抛出ModuleNotFoundError

Example: ModuleNotFoundError

>>> import notamodule
Traceback (most recent call last):File "<pyshell#10>", line 1, in <module>import notamodule
ModuleNotFoundError: No module named 'notamodule'

键错误

找不到钥匙时抛出KeyError

Example: KeyError

>>> D1={'1':"aa", '2':"bb", '3':"cc"}>>> D1['4']Traceback (most recent call last):File "<pyshell#15>", line 1, in <module>D1['4']KeyError: '4'

导入错误

找不到指定函数时抛出ImportError

Example: ImportError

>>> from math import cube
Traceback (most recent call last):File "<pyshell#16>", line 1, in <module>from math import cube
ImportError: cannot import name 'cube'

停止迭代

next()函数超出迭代器项时,抛出StopIteration

Example: StopIteration

>>> it=iter([1,2,3])>>> next(it)1>>> next(it)2>>> next(it)3>>> next(it)Traceback (most recent call last):File "<pyshell#23>", line 1, in <module>next(it)StopIteration

类型错误

当对不适当类型的对象应用操作或功能时,会抛出TypeError

Example: TypeError

>>> '2'+2Traceback (most recent call last):File "<pyshell#23>", line 1, in <module>'2'+2TypeError: must be str, not int

值错误

当函数的参数类型不合适时,会抛出ValueError

Example: ValueError

>>> int('xyz')Traceback (most recent call last):File "<pyshell#14>", line 1, in <module>int('xyz')ValueError: invalid literal for int() with base 10: 'xyz'

名称错误

找不到对象时抛出NameError

Example: NameError

>>> age
Traceback (most recent call last):File "<pyshell#6>", line 1, in <module>age
NameError: name 'age' is not defined

零分割错误

当除法中的第二个运算符为零时,抛出ZeroDivisionError

Example: ZeroDivisionError

>>> x=100/0Traceback (most recent call last):File "<pyshell#8>", line 1, in <module>x=100/0ZeroDivisionError: division by zero

键盘中断

在程序执行过程中,当用户点击中断键(通常是 Control-C)时,会抛出KeyboardInterrupt

Example: KeyboardInterrupt

>>> name=input('enter your name')enter your name^c
Traceback (most recent call last):File "<pyshell#9>", line 1, in <module>name=input('enter your name')KeyboardInterrupt


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10692.html

标签: Python
分享给朋友:

“Python 错误类型” 的相关文章

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】使用systemctl配置dnspod-shell实现ddns

【说站】使用systemctl配置dnspod-shell实现ddns

这个是毛子路由器上用的脚本,由于碳云的nat服务器公网IP不断的变,因此只好通过ddns来稳定连接nat服务器了。顺便水一篇文章,大家新年快乐。使用前需要将域名添加到 DNSPod 中,并添加一条A记...

【说站】PHP使用Openssl实现本地生成csr、key、crt证书文件

【说站】PHP使用Openssl实现本地生成csr、key、crt证书文件

在Apache中要启用HTTPS访问,需要开启Openssl,也就需要crt和key两个和证书相关的文件了,那如果用制作呢?之前发过博文介绍过用在线生成的方式,但搞PHP编程的人有些东西还是想在自己的...