一、第6章 异常处理
1、什么是异常。
什么是异常处理 异常是指程序在运行过程中发生的错误事件,影响程序的正常运行,异常并不是一定会发生,默认情况下,程序运行中遇到异常时将会终止,并在控制台打印出异常出现的堆栈信息。
异常处理是指程序设计时为了避免因异常而导致程序终止而做的一些额外操作。异常处理可以使得异常出现后,程序仍然可以执行。
示例:
1、NameError :使用了未定义的变量或函数
2、TypeError :执行了类型不支持的操作,例如整数+字符串
3、SyntaxError :语法错误
2、如何处理异常
Python中通常将可能发生异常的代码放在try语句中,
如果发生异常则通过except语句来捕获异常并对做一些额外处理,
如果没有异常则执行后面的else语句,
最后执行finally语句做一些收尾操作。
Python中还提供了raise语句允许用户主动抛出异常,raise关键字后面需要提供一个异常实例或者异常类,如果传递的是异常类,则会调用无参数的构造方法来实例化对象。如果捕获到了异常,但是暂时不处理,可以直接通过raise语句抛出异常,此时raise关键字后面什么都不用写。
二、第6章 函数
1、参数类型
可变长度参数是指函数定义时,无法确定参数的个数。例如系统中的 print 函数,不知道用户需要打印多少个对象,此时将需要打印的内容定义为可变长度参数,根据调用者传递的实际参数来确定参数的长度。 Python 中可变长度参数有两种形式:*参数名和**参数名。
(1)*参数名:表示该参数是一个元组类型,可接受多个实参,并将传递的实参依次存放到元组中,主要针对以位置传值的实参;
(2)**参数名:表示该参数是一个字典类型,可接受多个实参,并将传递的键值对放到集合中,主要针对以关键字传值的实参。
2、变量作用域
根据变量定义的位置,可将变量分为全局变量和局部变量。
(1)全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作。如果有赋值语句,相当于创建了一个同名的局部变量;
(2)局部变量:定义在函数内部的变量,只能在它被定义的函数中使用。在函数外面无法直接访问;
(3)注意:当局部变量和全局变量同名时,在函数内部使用变量时,通常都是指局部变量,如果确实需要对全局变量进行修改,需要使用global关键字对变量进行声明,此时操作的就是全局变量了。
3、特殊函数:
匿名函数1ambda表达式:没有函数名字的临时使用的函数,可以将1ambda表达式看成是函数的简写形式。
(1) lambda 表达式的语法:
lambda 参数列表:表达式
(2)与函数区别:关键字不同: def 、 lambda ;没有名称;参数列表不需要一对圆括号,只包含一个表达式,不能包含多条语句。
(3) lambda 表达式的主体是一个表达式,而不是一个代码块,在表达式中可以调用其它函数,并支持默认值参数和关键字参数,表达式的结果相当于函数的返回值;
三、数据结构
1、元组:是不可变序列,不可修改里面的元素。元组中元素放在一对圆括号"()"中,并用逗号分隔,元素类型可以不同。注意:当元组中只包含一个元素时,元素后面的逗号不能省略,否则系统会将其看做是其他数据类型。
2、列表:是有序可变序列,列表的所有元素放在一对中括号"[]"中,并使用逗号隔开,元素的类型可以不同。
3、字符串:由字符组成的一个不可变序列,和元组作用类似,也支持索引、切片、重复、合并等操作。
4、字典:无序的映射类型,由若干"键( key ):值( value )"组成,"键"和"值"之间用冒号隔开,所有"键值对"放在一对大括号"{}"内,并用逗号分隔。其中"键"必须为不可变类型,在同一个字典中,"键"必须是唯一的,但"值"可以重复。
5、集合:是无序可变不重复的,不支持索引、切片等操作。元素放在一对大括号"{}"中,并用逗号分隔,元素类型可以不同,但集合中元素不能重复。集合中不能包含可变元素,例如列表。注意:不能直接通过 a ={}创建空集合,此时创建的是一个空字典。可通过循环遍历集合中的所有元素。
1、列表切片:列表对象【start:end:step】