2.2.1 Python中的错误和异常

1,错误
在编程的过程中错误是在所难免的,有可能写错了,少符号之类的等等。这就需要我们自己去进行调试修改了。
首先需要了解错误。
SyntaxErrors:语法错误Python中的常见错误之一
>>> for i in range(10)
SyntaxError: invalid syntax
上面那句话因为缺少冒号“:”(英文半角),导致解释器无法解释,于是报错
逻辑错误,是在没有语法错误时,可能会出现。逻辑错误可能会由于不完整或者不合法的输入导致,也可能是无法生成、计算等,或者是其他逻辑问题。
2,异常
>>> 2/0

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
2/0
ZeroDivisionError : integer division or modulo by zero
当Python抛出异常的时候,首先“跟踪记录( Traceback)”,还可以给它取一个更优雅的名字“回溯”,然后才显示异常的详细信息,标明异常所在位置(文件、行或某个模块)。最后一行是错误类型以及导致异常的原因。
一般常见的异常:
异常
描述
NameError
尝试访问一个没有申明的变量
ZeroDivisionError
除数为0
SyntaxError
语法错误
IndexError
索引超出数据范围
KeyError
请求一个不存在的字典关键字
IOError
输入/输出错误:读取文件不存在
AttributeError
尝试访问未知的对象属性
NameError
>>> a

Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
a
NameError : name 'a' is not defined
Python中虽然不需要在使用变量之前先声明类型,但也需要对变量 进行赋值 ,然后才能使用,不被赋值的变量,不能在Python中存在
ZeroDivisionError
>>> 2/0

Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
2/0
ZeroDivisionError : integer division or modulo by zero
意思就是被除数不能为0
SyntaxError
>>> for i in range(10)
SyntaxError: invalid syntax
这种错误发生在Python代码编译的时候,当编译到这一句时,解释器不能将代码转化为Python字节码就报错,它是在程序运行之前出现的
IndexError和KeyError
>>> a = [1,2,3]
>>> a[1]
2
>>> a[4]

Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
a[4]
IndexError : list index out of range

>>> b = {"hello":"zhangsan"}
>>> b["hello"]
'zhangsan'
>>> b["aaa"]

Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
b["aaa"]
KeyError : 'aaa'
在编程实践中,特别是循环的时候,常常由于循环条件设置不合理出现这种类型的错误。
IOError
>>> f = open("opt/test.csv")

Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
f = open("opt/test.csv")
IOError : [Errno 2] No such file or directory: 'opt/test.csv'
一般在读取和上传文件的时候会出现,一定要确定文件路径是否正确
AttributeError
>>> class Test(object):
print "这是个异常测试"

这是个异常测试
>>> t = Test()
>>> t
<__main__.Test object at 0x02F10770>
>>> t.aa

Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
t.aa
AttributeError : 'Test' object has no attribute 'aa'
属性不存在,出现错误。
这只是几个常见的错误,编程过程中还会遇到很多错误,细心的检查代码,不慌张,你会发现错误没什么可怕的,进步就在不经意间。
注意:学会使用百度,谷歌等搜索引擎
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值