Python中的一些异常
其实异常就是不正常,就是不和我们想象一样去执行。它是因为程序出现了错误而在正常控制流以外采取的行为。Python出现异常,就是因为检查了一个错误时,Python解释器无法继续继续执行下去,这时候抛出了异常。往往这个错误分为语法上和逻辑上(不擅长说概念,-_-! ),看看几个例子,总结一下:
1、NameError:尝试访问一个未声明的变量
任何可访问的变量必须在名称空间列出,访问变量需要由解释器进行搜索,如果请求的名字没有在任何名称空间里找到,那么将会生成一个 NameError异常
2、ZeroDivisionError:除数为零
任何数值被零除都会导致一个ZeroDivisionError的异常
3、SyntaxError:Python解释器语法错误
SynaxError异常是唯一不是在运行时候发生的异常,它表示Python代码中有不正确的结构,因此无法正常执行。很明显,这个错误是在编译时候产生的,Python解释器无法将该脚本转化为Python字节代码。
4、IndexError:请求的索引超出了序列范围
举例子:
>>> aList = [1 ,3]
>>> aList[0]
1
>>> aList[1]
3
>>> aList[2]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
5、KeyError:请求一个不存在的字典关键字
字典中用key访问value,如果使用不存在的key,就是抛出KeyError异常
>>> aList ={'a':1,'b':2}
>>> aList['a']
1
>>> aList['c']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'c'
6、IOError:输入/输出错误
如果尝试打开一个不存在或者无权限的文件等操作,就会引发操作系统I/O错误。这个错误可以多种
7、AttributeError:尝试访问未知对象属性
8、ValueError:赋值异常
例如:
>>> int(123.23)
123
>>> int('a')
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: 'a'
由于参数的值是字符,不可转化为整形。同时还有类似的TypeError类似的异常。
上面只是一部分,对于异常情况,无论是在任何编程语言中都很重要,作为程序员,不仅要懂得怎么去检测这些异常,还应该具备异常发生时采取可靠补救措施的能力。
一如既往,作为记录,仅此而已。
相关文档:
时常见到一些好的Python模块,如果不随时记下,等用的时候又是一阵乱翻,好在Python引用一个模块极其方便,OK,废话少说:
1. decimal
标准模块,2.4引入,用于浮点数的精确表示:
>>> 0.1 + 0.1 + 0.1 - 0.3
5.5511151231257827e-17
>>> from decimal import Decimal
>>> def _(x): retu ......
1.Python中时间函数有几种不同的表示方法。一种是基于数字的表示方法,另外一种是用一系列值来表示,第三种是用ASCII码字符串的可读形式来表示的元组。 time()函数返回的是从某一时间点算起的秒数,该数值是一个浮点数。根据操作系统的不同,这个时间点也不同。通过求localtime(0)的值可以找到系统的该时间点。 localtime ......
初学python,现在要读一个二进制文件,查找doc只发现file提供了一个read和write函数,而且读写的都是字符串,如果只是读写char等一个字节的还行,要想读写如int,double等多字节数据就不方便了。在网上查到一篇贴子,使用struct模块里面的pack和unpack函数进行读写。下面就自己写代码验证一下。
>>> from struct ......
过量的参数
在运行时知道一个函数有什么参数,通常是不可能的。另一个情况是一个函数能操作很多对象。更有甚者,调用自身的函数变成一种api提供给可用的应用。
对于这些情况,python提供了两种特别的方法来定义函数的参数,允许函数接受过量的参数,不用显式声明参数。这些“额外”的参数下一步再解释。
注意a ......
还记得是一个月的事情,神奇般的在youtube上搜索python,有个老外的教程里面有这么个内容:
#=============================
## python 魔法传值
#=============================
#-*-coding:utf-8-*-
class sono:
def Dict(self,**args):
ret ......