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'+2
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>

'2'+2
TypeError: 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/0
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>

x=100/0
ZeroDivisionError: 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 

在下一章中学习如何用 Python 处理异常。***

原创文章,作者:VI2N2,如若转载,请注明出处:https://www.506064.com/n/130183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
VI2N2VI2N2
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:28

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29

发表回复

登录后才能评论