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基础教程之常用运算符
Aug 29 Python
Python开发常用的一些开源Package分享
Feb 14 Python
Python实现CET查分的方法
Mar 10 Python
python文件写入实例分析
Apr 08 Python
用python实现简单EXCEL数据统计的实例
Jan 24 Python
python读取二进制mnist实例详解
May 31 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
python每天定时运行某程序代码
Aug 16 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 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
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
dojo 之基础篇
2007/03/24 Javascript
js 函数的副作用分析
2011/08/23 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python 字典的打印实现
2019/09/26 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
电脑饰品店的创业计划书
2014/01/21 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
JS class语法糖的深入剖析
2022/07/07 Javascript
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js