python中常见错误及解决方法


Posted in Python onJune 21, 2020

python常见的错误有

1.NameError变量名错误

2.IndentationError代码缩进错误

3.AttributeError对象属性错误

详细讲解

1.NameError变量名错误

报错:

>>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError: name 'a' is not defined<br>

解决方案:

先要给a赋值。才能使用它。在实际编写代码过程中,报NameError错误时,查看该变量是否赋值,或者是否有大小写不一致错误,或者说不小心将变量名写错了。

注:在Python中,无需显示变量声明语句,变量在第一次被赋值时自动声明。

>>> a=1<br>>>> print a<br>1<br>

2.IndentationError代码缩进错误

代码

a=1b=2<br>if a<b:<br>print a<br>

报错:

IndentationError: expected an indented block<br>

原因:

缩进有误,python的缩进非常严格,行首多个空格,少个空格都会报错。这是新手常犯的一个错误,由于不熟悉python编码规则。像def,class,if,for,while等代码块都需要缩进。

缩进为四个空格宽度,需要说明一点,不同的文本编辑器中制表符(tab键)代表的空格宽度不一,如果代码需要跨平台或跨编辑器读写,建议不要使用制表符。

解决方案

a=1b=2<br>if a<b:<br>  print a<br>

3.AttributeError对象属性错误

报错:

>>> import sys<br>>>> sys.Path<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>AttributeError: 'module' object has no attribute 'Path'<br>

原因:

sys模块没有Path属性。

python对大小写敏感,Path和path代表不同的变量。将Path改为path即可。

>>> sys.path<br>['', '/usr/lib/python2.6/site-packages']<br>

初学者遇到的错误实例:

使用错误的缩进

Python用缩进区分代码块,常见的错误用法:

print('Hello!')
print('Howdy!')

导致:IndentationError: unexpected indent。同一个代码块中的每行代码都必须保持一致的缩进量

if spam == 42:
print('Hello!')
print('Howdy!')

导致:IndentationError: unindent does not match any outer indentation level。代码块结束之后缩进恢复到原来的位置

if spam == 42:
print('Hello!')

导致:IndentationError: expected an indented block,“:” 后面要使用缩进

变量没有定义

if spam == 42:
print('Hello!')

导致:NameError: name 'spam' is not defined

获取列表元素索引位置忘记调用 len 方法

通过索引位置获取元素的时候,忘记使用 len 函数获取列表的长度。

spam = ['cat', 'dog', 'mouse']
for i in range(spam):
print(spam[i])

导致:TypeError: range() integer end argument expected, got list. 正确的做法是:

spam = ['cat', 'dog', 'mouse']
for i in range(len(spam)):
print(spam[i])

当然,更 Pythonic 的写法是用 enumerate

spam = ['cat', 'dog', 'mouse']
for i, item in enumerate(spam):
print(i, item)

函数中局部变量赋值前被使用

someVar = 42
def myFunction():
print(someVar)
someVar = 100
myFunction()

导致:UnboundLocalError: local variable 'someVar' referenced before assignment

当函数中有一个与全局作用域中同名的变量时,它会按照 LEGB 的顺序查找该变量,如果在函数内部的局部作用域中也定义了一个同名的变量,那么就不再到外部作用域查找了。因此,在 myFunction 函数中 someVar 被定义了,所以 print(someVar) 就不再外面查找了,但是 print 的时候该变量还没赋值,所以出现了 UnboundLocalError

以上就是python中常见错误及解决方法的详细内容,更多关于python常见错误有哪些的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
python 贪心算法的实现
Sep 18 Python
详解Python小数据池和代码块缓存机制
Apr 07 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 Python
python安装后的目录在哪里
Jun 21 #Python
浅谈Python 函数式编程
Jun 20 #Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 #Python
深入浅析python 中的self和cls的区别
Jun 20 #Python
浅谈Python 参数与变量
Jun 20 #Python
python字符串的index和find的区别详解
Jun 20 #Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 #Python
You might like
星际流派综述
2020/03/04 星际争霸
PHP输出时间差函数代码
2013/01/28 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
详解Node 定时器
2018/02/26 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
我的祖国演讲稿
2014/05/04 职场文书
合作经营协议书范本
2014/09/16 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书