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代码的打包与发布详解
Jul 30 Python
python轻松实现代码编码格式转换
Mar 26 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
简单了解什么是神经网络
Dec 23 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
python学习笔记之多进程
Aug 06 Python
jupyter notebook 写代码自动补全的实现
Nov 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
桌面中心(二)数据库写入
2006/10/09 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
JavaScript模拟push
2016/03/06 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
js判断节假日实例代码
2017/12/27 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
python下载文件时显示下载进度的方法
2015/04/02 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
八年级历史教学反思
2014/01/10 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
小学社会实践活动总结
2014/07/03 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014年医务科工作总结
2014/12/18 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
Java 数据结构七大排序使用分析
2022/04/02 Java/Android