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,没有和你完全一样的存在。

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

时间: 2024-10-12 20:28:28

Python基础中所出现的异常报错总结的相关文章

python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

【Hadoop】9、hadoop1.2.1完全分布式安装过程异常报错

异常报错 1.ssh配置出错,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,只有按ctrl + c结束 错误是:The authenticity of host 192.168.0.xxx can't be established. 以前和同事碰到过这个问题,解决了,没有记录,这次又碰到了不知道怎么处理,还好有QQ聊天记录,查找到一下,找

利用python将文本文件导入数据库时,报错:Duplicate entry '...' for key 'PRIMARY'

错误原因就是添加了相同的主键,我想了好一会儿,我抓的数据主键是Isbn啊,不可能重的啊,于是,我去数据库中查了以下报错的isbn号,插入的数据中也有,因为分类不一样,所以要再插入一次,这就肯定会报错啦,其中一个处理方法就是, 如果数据库中有这条记录,那么就跳过这条记录,另外,还可以在跳过这条记录的同时,把数据库中这本书的类别改为这两种类别. ans = con.execute("select * from b where isbn=(%s)",isbn)if (ans): contin

[Python] Windows上通过pip安装uwsgi报错

错误提示: AttributeError: module 'os' has no attribute 'uname' 原因: 因为os.uname()是linux的方法,在window上不可用,platform模块则支持任何系统 解决办法: 下载uwsgi离线安装 1.https://pypi.python.org/pypi/uWSGI/下载你想要的uwsgi 压缩文件 2.在你需要用它的python文件的site-packages文件中解压缩 3.找到uwsgiconfig.py配置文件 4.

android 程序中res/values-v14/styles.xml报错的解决办法

从旧的ADT迁移的新的ADT时, android 程序中res/values-v14/styles.xml报错: error: Error retrieving parent for item: No resource found that matches the given name :Theme.AppCompat.Light.DarkActionBar 解决办法:修改项目下的project-properties文件, 把下面这一行加入,指向新导入的support库(需要先导入这个库) an

sharepoint 2013中infopath使用GetUserProfileByName一直报错5566解决方案

最近折磨了很久的sharepoint关于infopath 表单调用数据库中的GetUserProfileByName数据总是报错5566.至少弄了2个月.现在把sharepoint 203的配置方法写一遍出来.分享给大家. 1:安装infopath ,在开始菜单里面找到office 2013 选择 infopath designer 2013. 第一步:用SharePoint表单库模板新建一个InfoPath表单 第二步:为UserProfileService建立数据连接 在功能区中选择数据连接

Window7中Eclipse运行MapReduce程序报错的问题

按照文档:http://www.micmiu.com/bigdata/hadoop/hadoop2x-eclipse-mapreduce-demo/安装配置好Eclipse后,运行WordCount程序报错: log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j

recycleview异常报错

rcycleview异常报错 05-07 14:29:49.924: E/MessageQueue-JNI(16160): java.lang.NullPointerException 05-07 14:29:49.924: E/MessageQueue-JNI(16160): at android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1613) 05-07 14:29:49.9

MySQL中遇到的几种报错及其解决方法

MySQL中遇到的几种报错及其解决方法 1.[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''xxx'' at line 1 解决方法:将所有的" '' "换成" ·· "(将所有的英文单引号换为Tab键上面的那个点号)