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实现m3u8格式转换为mp4视频格式
Feb 28 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
详解python深浅拷贝区别
Jun 24 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
python框架Django实战商城项目之工程搭建过程图文详解
Mar 09 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
python 轮询执行某函数的2种方式
May 03 Python
深入理解Python 多线程
Jun 16 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 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
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
javascript数组排序汇总
2015/07/07 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
详解Python中的__init__和__new__
2014/03/12 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
破解安装Pycharm的方法
2018/10/19 Python
Python FFT合成波形的实例
2019/12/04 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python气泡提示与标签的实现
2020/04/01 Python
python logging模块的使用
2020/09/07 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
C#和SQL Server的面试题
2016/08/12 面试题
会计毕业自我鉴定
2014/02/05 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
公司庆典欢迎词
2015/01/26 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
Golang map映射的用法
2022/04/22 Golang