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 爬虫学习笔记之单线程爬虫
Sep 21 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Python随机函数random()使用方法小结
Apr 29 Python
python获取url的返回信息方法
Dec 17 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 Python
python基础之类属性和实例属性
Oct 24 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为php增加openssl模块的方法
2011/06/14 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
php中如何执行linux命令详解
2018/11/06 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
sails框架的学习指南
2014/12/22 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
vue实现放大镜效果
2020/09/17 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python实现常见的回文字符串算法
2018/11/14 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
简短大学毕业感言
2014/01/18 职场文书
毕业评语大全
2014/05/04 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
政审证明范文
2015/06/19 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
转变工作作风心得体会
2016/01/23 职场文书
使用python绘制横竖条形图
2022/04/21 Python