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中的atexit模块
Mar 07 Python
python去除字符串中的换行符
Oct 11 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
python绘制直线的方法
Jun 30 Python
Python中文编码知识点
Feb 18 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
java判断三位数的实例讲解
Jun 10 Python
Django 重写用户模型的实现
Jul 29 Python
pytorch 实现打印模型的参数值
Dec 30 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 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系列学习之日期函数使用介绍
2012/08/18 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
PHP 正则表达式小结
2015/02/12 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
jQuery属性选择器用法实例分析
2019/06/28 jQuery
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Python命令行click参数用法解析
2019/12/19 Python
Pytorch to(device)用法
2020/01/08 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
UNIX文件类型
2013/08/29 面试题
青年创业培训欢迎词
2014/01/10 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
天鹅湖观后感
2015/06/09 职场文书