新手常见的python报错及解决方法 6种python常见的报错及解决方法

这篇文章整理了一下在新手编写代码中常见的一些错误 , 有些错误是粗心的错误 , 但对于新手来说 , 会折腾很长时间才能解决 , 下面一起学习有关“新手常见的python报错及解决方法 6种python常见的报错及解决方法” 。

新手常见的python报错及解决方法 6种python常见的报错及解决方法

文章插图
1.NameError变量名错误
a=1print(a)print(b)报错:
File "<stdin>", line 3 in <module>NameError: name 'b’not defined解决方法:这里报错的原因是因为b没有给它赋值 , 一般出现error错误时 , 应该查看变量是否赋值 , 或者变量名(大小写)是否正确 。在Python中 , 无需显示变量声明语句 , 变量在第一次被赋值时自动声明 。
2.IndentationError代码缩进错误
a=2b=4if a<b:print a报错:
IndentationError: expected an indented block解决方法: 明显的缩进有误 , python对缩进要求非常高 , 行首多个空格 , 少个空格都会报错 , 这是新手常犯的错误之一 , 由于不熟悉python编码规则 , 在一般循环语句中都会需要用到缩进 。 
a=2b=4if a<b:print a3.AttributeError对象属性错误  
import syssys.Path报错:
File "<stdin>", line 1, in <module>AttributeError: 'module' object has no attribute 'Path'解决方案:此处报错很明显说了‘Path’的问题 , 在sys模块中没有这个属性 , python对字母大小写也是非常敏感的 , 一个字母的区别可能就会代表着不同的变量 , 这里把Path改成path就可以了 。
4.TypeError类型错误
入参类型错误
代码:
h=('a','b','c')for i in range(h): print a[i]报错:
TypeError: range() integer end argument expected, got tuple.原因:range()函数期望的入参是整型int , 但却给的入参为元组(tuple)
解决方案:将入参元组h改为元组个数整型len(h),将range(t)改为range(len(h))
5.IOError输入输出错误
1、文件不存在报错
f=open("Hello.py")报错:
File "<stdin>", line 1, in <module>IOError: [Errno 2] No such file or directory: 'Hello.py'原因:open()函数没有指明打开方式 , 默认为只读方式 , 如果该目录下没有Hello.py的文件 , 则会报错 , 需要查看这个文件是否存在 。
解决方案:查看该目录下是否有hello.py文件 , 直接打开该文件就可以了 。
2、因文件权限问题报错
f=open("hello.py")f.write("test")报错:
File "<stdin>", line 1, in <module>IOError: File not open for writing原因:open()函数没有指明打开方式 , 说明默认打开文件的方式为只读方式 , 而现在是要写入字符 , 所以权限受限 , 才会报错 。
解决方案:更改模式 , 加上“w+” 。
f=open("hello.py",'w+')f.write("test")6.KeyError字典键值错误
报错:常见报错有测试接口 , 接口返回数据一般是json格式 , 而测试该接口校验某个值是否正确 , 如果key拼写错了 , 就会报KeyError 。简单举例如下:

推荐阅读