Python基础中所出现的异常报错总结

yipeiwu_com6年前Python基础

今天我们来探索python中大部分的异常报错

首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。

打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本。。。首先类型不对,数量也不对。

先来看几个常见的报错如下:

NameError 命名错误 原因是: name 'a' is not defined  命名a还未定义 简单来说就是程序不知道a带表谁 如果a=1 那程序就懂了 a代表1

所以以后碰到这类代码只用找到错误未定义的a给它赋相应的值即可解决了。

好了我们继续看下一个如下:

IndexError 索引错误(也有叫边界错误) 原因: list index out of range 列表的索引已经超出其范围导致

列表a只有2个参数,下标是0,1(不懂去看列表基础),而我要打印下标2位置的值这时候就超过它的标准不在范围内

 打个比方坐公交车1米2以下儿童免费,结果来个1米5上来就不能免费因为你超过规定高度

来我们继续continue:

KeyError 键值错误 一般出现在字典中原因是:字典a中没有height这个键值,name已经打印出来因为a里面已经存在

字典是由dict = { key : value }一一对应组成,打个比方就理解了dict好比一家公司company由员工key类似标识

value等于员工的属性(岗位,工资,对应个人信息等)这报错就等于去一个公司找某某某,结果人家公司说没这个人一样。

继续继续continue:
ImportError 导入错误 原因:No module named nothing 没有模块名叫nothing的方法

一般这错误会发生在拼写错误或者大小写,没有安装模块方法,没有正确引用位置(模块更新版本可能会改方法名或新增文件夹)

这时候我推荐你去python2.x或者python3.x目录下\Lib\site-packages文件里面找找看(第三方库模块都会在这几种存放)

继续继续continue:
IOError 输入输出错误 原因:No such file or directory : 'test' 没有在目录中找到叫test文件

这个容易理解,无中生有。程序说:你坑谁啊?

 继续继续continue:
 AttributeError 成员属性错误 原因:一切皆对象 然而字典a对象内没有一个内置函数也就是内置方法叫sort排序,大家都知道字典是无序的,list列表才有这方法

当你定义一个变量不知道能用什么内置函数和方法时可以这样用dir查看以下当前可以用那些方法。
SyntaxError 语法错误 :无效语法  a没有定义所以没办法让它转换为整型 这也是常见错误之一

来接着看下一个:
TypeError 类型错误:不知道的哈希类型 list列表 (后面为个人理解) 但是元组却可以放进去有点费解,字典的key一般是单元素或唯一标识,

恰好元组不可变的序列也是唯一标识,所以元组可以放入key中。打比方就如你是世界上唯一的key,没有和你完全一样的存在。

以上是经常会遇到的问题报错,大家学会了就可以自己思考解决方法了这样也利于大家提高自己的水平。

相关文章

python把ipynb文件转换成pdf文件过程详解

python把ipynb文件转换成pdf文件过程详解

这两天一直在做课件,我个人一直不太喜欢PPT这个东西……能不用就不用,我个人特别崇尚极简风。 谁让我们是程序员呢,所以就爱上了Jupyter写课件,讲道理markdown也是个非常不错的...

更新修改后的Python模块方法

更新修改后的Python模块方法

python如何更新修改后的Python模块 1.利用python的MySQLdb模块利用原生的sql语句进行更新的方法代码 配置方法代码 2.使用execute方法执行SQL语句方法...

使用python获取电脑的磁盘信息方法

使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能。 在iPython交互界面中进行如下演示: 查看电脑的...

python 字典有序并写入json文件过程解析

python 字典有序并写入json文件过程解析

大致流程: 导包---import collections 新建一个有序字典---collections.OrderedDict() 写入json文件 代码: imp...

Python中动态创建类实例的方法

简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时...