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 相关文章推荐
RC4文件加密的python实现方法
Jun 30 Python
Python的string模块中的Template类字符串模板用法
Jun 27 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
Python短信轰炸的代码
Mar 25 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Python实现像awk一样分割字符串
Sep 15 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python 中的函数装饰器和闭包详解
Feb 06 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实现MySQL更新记录的代码
2008/06/07 PHP
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php动态变量定义及使用
2015/06/10 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
Python算术运算符实例详解
2017/05/31 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
PHP如何防止SQL注入
2014/05/03 面试题
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
yy结婚证婚词
2014/01/10 职场文书
七年级地理教学反思
2014/01/26 职场文书
销售经理岗位职责
2014/03/16 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
杜甫草堂导游词
2015/02/03 职场文书
后勤个人工作总结
2015/02/28 职场文书
实施意见格式范本
2015/06/05 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
请假条应该怎么写?
2019/06/24 职场文书
php去除deprecated的实例方法
2021/11/17 PHP
Python经常使用的一些内置函数
2022/04/11 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS