真的!千万不要忽略这些python常见报错信息_nameerror name ‘a‘ is not defined

简介: 真的!千万不要忽略这些python常见报错信息_nameerror name ‘a‘ is not defined


在使用Python时,作为萌新的我总是会粗心的掉这掉那,运行时就会出现各式各样的错误,因此写这么一篇博客,来总结下编写代码的一些常见错误以及解决办法。

有什么python相关报错解答自己不会的、或者源码资料/模块安装/女装大佬精通技巧 都可以来这里:(https://jq.qq.com/?_wv=1027&k=2Q3YTfym)或者文末私号问我

NameError

报错:

>>> print(a)
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined

NameError

名称错误

原因及解决方案:

  • 先给a赋值,才能使用它。当出现NameError时,绝大多数情况不是没被赋值,而是我们将单词拼错,或大小写没注意到。因此要回头好好检查下哪里错了。

SyntaxErrorError

报错:

#错误1
>>> a = 1
>>> if a:
print(1)
SyntaxError: expected an indented block
#错误2
>>> if a<b :
SyntaxError: invalid character in identifier
#错误3
>>> print('a)
      
SyntaxError: EOL while scanning string literal

SyntaxError

语法错误,代码形式错误

原因及解决方案:

  • 错误1:没有缩进或者缩进格式错误。最常见的问题就是在于Tab和Space的混用。其实在多数编辑器上转行是会自动补好缩进的,如果实在不确定,可以手动按一下Tab或敲4下Space(更建议后者)。切记Tab和Space不要同时按或混着多按。
  • 错误2:绝大多数情况下出现这个错误是因为写代码时混用了中文标点,在不经意时按了Shift切换成了中文字符。在敲代码时,要多注意注意输入法是不是不小心改变了
  • 错误3:出现错误3,真的是非常非常非常不小心了。多出现在引号不对称或缺少引号的情况下。这时你应该检查下你的代码哪里的颜色有点奇怪。在多数编辑器中,输入单个引号后,如果没有另一个引号与之对应,")"的颜色或者代码的颜色会显得很奇怪

AttributeError

报错:

>>> a = list()
>>> a.add('1')
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    a.add('1')
AttributeError: 'list' object has no attribute 'add'

AttributeError

赋值异常

原因及解决方案:

  • 出现这种错误主要是因为混用了语法。如上例:a是一个空列表,而往列表中添加元素是append,即本应用a.append(‘1’)。而a.add()是用于往集合中添加元素的,这种语法的混用,导致了AttributeError。

TypeError

报错:

#错误1
>>>a = input('Enter a number:')
>>>print(a/2)
Enter a number:1
Traceback (most recent call last):
  File "C:\Users\acer\Desktop\测试1.py", line 2, in <module>
    print(a/2)
TypeError: unsupported operand type(s) for /: 'str' and 'int'
#错误2
>>> for i in range(1,2,2,3):
  print(i)
  
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    for i in range(1,2,2,3):
TypeError: range expected at most 3 arguments, got 4

TypeError

类型错误

原因及解决方案:

  • 错误1:如上例,input()返回的是一个字符串类型的值,而字符串显而易见是不能直接与数字进行运算,因此出现了TypeError。解决该问题的关键在于你需要得到的是什么类型的值。若需要数值型,可在input()前加上eval(),即可返回数值型。若只需要整型,可加上int()。以此类推。
  • 错误2:参数个数错误。range()最多只能有三个参数(start,end,index),但输入了4个参数,因此出现TypeError。该问题主要出现于对函数的不熟悉上。可通过help()先查看函数的具体用法,再添加合适的参数进行使用。

IndexError

报错:

>>> a = list()
>>> a.append('1,2,3,a,b');a
['1,2,3,a,b']
>>> a[5]
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    a[5]
IndexError: list index out of range
>>> 

IndexError

索引错误

原因及解决方案:

  • 出现该错误主要原因在于索引不存在或超过序列范围。如上例:列表a只有5个元素**(切记:Python中索引都是从0开始)**,因此a[6]需要返回的是第6个元素,而总共只有5个元素。故出现该错误。多数情况是因为忘记了“从0开始”这个原则导致出现这种错误,改变下索引值便可解决。

ValueError

报错:

>>> a = "abc"
>>> int(a)
Traceback (most recent call last):
**一、Python所有方向的学习路线**
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
![img](https://ucc.alicdn.com/images/user-upload-01/1d40facda2b84990b8e1743f5487d455.png)  
![img](https://ucc.alicdn.com/images/user-upload-01/0fc11d4a31bd431dbf124f67f1749046.png)
**二、Python必备开发工具**
工具都帮大家整理好了,安装就可直接上手!![img](https://ucc.alicdn.com/images/user-upload-01/ff266f529c6a46c4bc28e5f895dec647.gif#pic_center)
**三、最新Python学习笔记**
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
![img](https://ucc.alicdn.com/images/user-upload-01/6d414e9f494742db8bcc3fa312200539.png)
**四、Python视频合集**
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
![img](https://ucc.alicdn.com/images/user-upload-01/a806d9b941c645858c61d161aec43789.png)
**五、实战案例**
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。![img](https://ucc.alicdn.com/images/user-upload-01/a353983317b14d3c8856824a0d6186c1.png)
**六、面试宝典**
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/97c454a3e5b4439b8600b50011cc8fe4.png)
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/111f5462e7df433b981dc2430bb9ad39.png)
###### **简历模板**![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/646863996ac44da8af500c049bb72fbd.png#pic_center)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**


相关文章
|
2天前
|
程序员
大家来决定:python-office运行时的提示信息,要不要删除?
**摘要:** 程序员晚枫发起投票,询问是否应去除`python-office`项目运行时显示的中文提示信息,这些信息包含教程、源码链接和答疑群等。提示虽无运行影响,但显得不够专业。项目因用户咨询增加而添加此信息,作者考虑删除,因觉得与常见开源项目风格不同且其教程收费。附三张截图展示提示内容。用户可在评论区投票决定,输入“取消”或“保留”。
大家来决定:python-office运行时的提示信息,要不要删除?
|
3天前
|
Python 存储 数据处理
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
|
6天前
|
JavaScript 关系型数据库 MySQL
Python实战:从猎聘网获取职位信息并存入数据库
Python实战:从猎聘网获取职位信息并存入数据库
|
11天前
|
存储 供应链 开发者
Python列表打造简易进销存系统:轻松管理库存信息!
Python列表打造简易进销存系统:轻松管理库存信息!
|
25天前
|
Python
Python应用中名称错误(NameError)
【5月更文挑战第16天】
22 2
|
28天前
|
网络协议 Python
在python中利用TCP协议编写简单网络通信程序,要求服务器端和客户端进行信息互传。 - 蓝易云
在这个示例中,服务器端创建一个socket并监听本地的12345端口。当客户端连接后,服务器发送一条欢迎消息,然后关闭连接。客户端创建一个socket,连接到服务器,接收消息,然后关闭连接。
74 0
|
1月前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
|
1月前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
|
1月前
|
Python
Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
【5月更文挑战第12天】Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
526 1
|
1月前
|
存储 JSON API
怎么使用Python提取快递信息
怎么使用Python提取快递信息
22 0