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实现倒计时的示例
Feb 14 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
pandas数据拼接的实现示例
Apr 16 Python
python实现ping命令小程序
Dec 28 Python
python绘制箱型图
Apr 27 Python
详解Django的MVT设计模式
Apr 29 Python
Python IO文件管理的具体使用
Mar 20 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
zend framework多模块多布局配置
2011/02/26 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
PHP7 弃用功能
2021/03/09 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
python中循环语句while用法实例
2015/05/16 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python自动登录QQ的实现示例
2020/08/28 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
绿色小区申报材料
2014/08/22 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
学校运动会加油词
2015/07/18 职场文书
办公室规章制度范本
2015/08/04 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
团结主题班会
2015/08/13 职场文书
2016猴年春节问候语
2015/11/11 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python