1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,python,基础培训,1,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,2,什么是,Python,Python,优雅而健壮的编程语言,注重如何解决问题,3,Python,的特点,高级,面向对象,可移植性,可扩展性,可嵌入性,健壮性,解释性,易学易读易用,4,为什么是,python,简单易学,功能丰富,与,c,、,c+,、,java,相比,与其他的脚本语言相比,perl,:对符号语法的过度使用,javascript,:通常嵌
2、入到,html,网页,依赖浏览器,5,下载和安装,下载:,www.python.org/,安装,环境变量:,Path=C:Program FilesPython24,6,Hello World,第一个,Python,程序,print“Hello World!”,命令行,编辑器,7,Python,的语法特色,注释,(#),继续,(),多个语句构成的代码组,(:),缩进分隔,模块,help,8,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,9,Python,的基础,变量,变量的赋值,astring=“hello”,
3、增量赋值:,x+=1(python2.0,开始,),、,多重赋值:,x=y=z=1,多元赋值:,x,y,z=1,2,“hello”(x,y,z)=(1,2,“hello”),提高可读性,10,Python,的基础,标识符,第一个字符必须是字母或下划线,_,其他字符可以是字母、数字或下划线,大小写敏感,关键字:,11,Python,的基础,无处不在的引用,变量的定义:在第一次赋值时自动声明,Python,是一种动态类型的语言,无处不在的引用:,Python,中的每个值,(,而不是变量,),都有一个唯一的标识,任何变量名之间的赋值都是引用的赋值,x=3,y=x,z=y,12,培训内容,python
4、概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,13,Python,的对象,任何类型的值都是一个对象,Python,对象的三个特性,身份:用,id(),查看,类型:用,type(),查看,值,14,Python,数据类型,概述,标准类型,数字,Integer,整型,Boolean,布尔型,Long integer,长整型,Floating point real number,浮点型,Complex number,复数型,String,字符串,List,列表,Tuple,元组,Dictionary,字典,15,Python,数据类型,概
5、述(续),其他的内建类型,Type,类型,Null,对象,文件,Set,集合,函数,模块,类,16,Python,数据类型,标准类型操作符,对象值的比较,对象身份比较,x=y=3.3,x=3.3;y=3.3,x=3.3;y=2+1.3,x is y,布尔类型操作符,17,Python,数据类型,标准类型内建函数,type(),cmp(),obj1obj2,返回正数,Obj1=obj2,返回,0,str(),和,repr(),以及 操作符,以字符串的方式获得对象的类型、内容、数值等属性,eval(),18,Python,数据类型,可变对象和不可变对象,不可变对象:对象创建之后,其值不能更新,可变
6、对象:对象创建之后,其值可以更新,19,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,数字类型,序列类型,字符串,列表,元组,映射类型,字典,20,Python,数据类型,数字,整型:,32,位机器上,标准整型的取值范围是,-2,31,2,31,-1,布尔型:只有两个值的整型,(0,和,1),,,python2.3,开始支持布尔型,长整型:标准整型的超级,能表达的数值仅与机器支持的内存大小有关系。,23434333L,双精度浮点型:占,8,个字节,(64,位,),,其中,53,位表示底,,11,位表示指数,一位
7、表示符号。,-77.,,,2.3434433,,,9.78e-23,,,float(12),复数:,a=4.56+8j;a.real,表示实部,,a.imag,表示虚部,21,数字类型的操作符,支持不同的数字类型相加,强制类型转换,22,数字类型的操作符,(,续,),算数操作符,功能,expr1*expr2,幂运算,+expr,结果符号不变,-expr,对结果符号去负,expr1*expr2,表达式,1,乘以表达式,2,expr1/expr2,表达式,1,除以表达式,2,(传统除或真正除),expr1/expr2,表达式,1,地板除以表达式,2(python2.2,加入,),expr1%exp
8、r2,表达式,1,对表达式,2,取余(模除),expr1+expr2,加,expr1-expr2,减,23,数字类型的操作符,(,续,),位操作符(只适用于整型),位操作符,功能,num,单目运算,对数的每一位取反,num1 num2,num1,左移,num2,位,num1&num2,num1,与,num2,按位与,num1 num2,num1,异或,num2,num1|num2,num1,与,num2,按位或,24,数字类型的内建函数,转换函数:将其他类型的数字转换为相应类型,int(),、,long(),、,float(),、,complex(),bool()python2.2,开始,功能
9、函数:,abs(num),绝对值,coerce(num1,num2),将,num1,和,num2,转换为同一类型,然后以一个元组的形式返回,divmod(num1,num2),获得商和余数的元组,pow(num1,num2,,,mod=1),指数运算,round(flt,ndig=1),对浮点型进行四舍五入运算,25,数字类型的相关模块,模块,介绍,decimal,十进制浮点运算类(,Decimal,),math/cmath,标准,C,库数学运算函数。常规数学运算在,math,模块,复数运算在,cmath,模块,random,多种位随机数生成器,26,序列类型,字符串、列表、元组,序列:成员有
10、序排列,可以通过下标访问其成员,字符串:,hello “hello”hello,列表:,2,4,python 2.4,6.8,python,1,3,“hello world”,元组,:,(3.3,6,“computer”)(4,(“hello”,9),1.1,5.7,8),序列有相同的访问方式:,27,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,数字类型,序列类型,字符串,列表,元组,映射类型,字典,28,序列类型的操作符,成员关系操作符:,in,not in,连接操作符:,+,重复操作符:*,切片操作:,:
11、0indexperson=name,savings,100.00,hubby=person:#slice copy,wifey=list(person)#fac func copy,id(x)for x in person,hubby,wifey,浅拷贝,深拷贝,copy.deepcopy,Import copy,hubby=person:#slice copy,wifey=copy.deepcopy(person),copy,模块:,copy(),浅拷贝,,deepcopy(),深拷贝,45,序列类型小结,操作符,in,not in,+,*,:,:,内建函数,list,str,unicode
12、tuple,enumerate,len,max,min,reversed,zip,sorted,raw_input,char,ord,sum,模块,string,copy,re,46,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,数字类型,序列类型,字符串,列表,元组,映射类型,字典,47,映射类型,字典,key1:value1,key2:value2,key3:value3,创建字典和赋值,dict1=,创建一个空字典,dict2=name:joe,age:30,dict(),方法,访问字典中的值,通过键访
13、问相应的值,dict2name,访问字典的键,dict2.keys(),,返回一个列表,访问字典的值,dict2.values(),返回一个列表,遍历一个字典,执行中字典的键不能被改变,删除字典元素和字典,del dict2name del dict2,48,字典类型的操作符,标准类型操作符,映射类型操作符,字典键查找操作符,(,键,),成员关系操作符,in,not in,49,字典类型的内建函数,type()str(),比较函数,cmp(),50,字典类型的内建函数,dict(container):,创建字典的工厂函数。如果提供了容器类,就用其中的条目填充字典,否则创建一个空字典,len()
14、返回键值对的数目,hash():,判断某个对象是否可以作为字典的键,不可变类型是可哈希的,51,字典类型的内建函数,(,续,),方法名字,操作,dict.clear(),删除字典中的所有元素,dict.copy(),返回一个字典的副本(浅拷贝),dict.fromkeys(seq,val=None),创建并返回一个新的字典,以,seq,中的元素为键,,val,为值,dict.get(key,d=none),返回键,key,对应的值,若该键不存在,返回,d,dict.items(),返回一个包含字典中键、值对元组的列表,dict.iteritems(),返回一个包含字典中键、值对元组的列表的
15、迭代子,dict.iterkeys(),返回键列表的迭代子,dict.itervalues(),返回值列表的迭代子,dict.keys(),返回字典中键的列表,dict.values(),返回字典中值的列表,dict.pop(key,default),与,get,相似,但是将键值对弹出,dict.setdefault(),与,类型,若键不存在,则使用默认值,dict.update(dict2),将,dict2,的键值对添加到字典,dict,52,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,53,条件表达式,i
16、f,语句,If expression:expr_true_suit,else,语句,if expression:expr_true_suit,else:expr_false_suit,elif,语句,(,即,else-if),if expression:expr_true_suit,elif:expr_true_suit,else:none_of_the_above_suit,三元操作符,x if xy else y,54,循环表达式,while,语句,while expression:suit_to_repeat,for,语句,For iter_var in iterable:suit_to
17、 _repeat,通过序列项迭代,通过序列索引迭代(,range(),),使用项和索引迭代,(enumerate(),与序列相关的内建函数:,sorted,、,reversed,、,enumerate,、,zip,55,循环表达式,break,语句,continue,语句,pass,语句,while-else,语句或,for-else,语句,56,迭代器和,iter(),函数,迭代器:有一个,next(),方法的对象,StopIteration,异常,reversed(),返回一个反向迭代器,enumerate(),使用迭代器,iter(),next(),for,循环,57,培训内容,pyth
18、on,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,58,函数,创建函数,def function_name():,函数的参数,函数的返回值,调用函数,局部变量,global,语句,文档字符串,59,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,60,模块,什么是模块,实现代码重用,导入模块,import,from import,导入指定模块的属性,sys,模块介绍,包含了与,python,解释器和它的环境有关的函数,exit,、,argv,、,pat
19、h,time,模块介绍,time.time(),获取当前时间,(,整数形式,),time.localtime(),当前时间的,struct_time,形式,time.ctime(),当前时间的字符串形式,Time.mktime(),由,struct_time,得到当前的秒数,61,模块,(,续,),os,模块介绍 包含普遍的操作系统功能,os.name,指示正在使用的平台,os.getcwd(),获得当前,python,脚本的工作目录,os.getenv(),读取环境变量,os.listdir(),返回指定目录下的所有文件和目录名,os.remove(),删除一个文件,os.system(),
20、用来运行,shell,命令,os.sep,根据当前操作系统,给出目录分隔符,os.path.isfile(),检验给出的路径是不是文件,os.path.isdir(),检验给出的路径是不是目录,62,模块,(,续,),模块的名字,_name_,if _name_=_main_:,创建自己的模块,dir(),列出模块定义的标识符,63,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,64,面向对象编程,类:一种数据结构,封装了属性和方法,类的定义,class ClassName(object):,class doc
21、umentation string#,文档字符串,class_suite#,类体,_init_,函数:类的构造器,实例化,第一步:创建实例对象,第二步:检查是否实现了,_init_,方法,65,面向对象编程,self,:相当于,this,指针,绑定,方法仅仅是类内部定义的函数,方法只有在其所属类拥有实例时,才能被调用,类的属性与实例的属性,类的属性:仅与被定义的类绑定,(,包括数据属性和方法属性,),实例属性:独立于其他的类或实例,仅拥有数据属性,66,面向对象编程,成员的访问类型,公有,私有?,_XXX,不允许,from myModule import*,导入,_XXX,类的私有成员,_XX
22、X_,系统定义的名字,继承,实现代码的重用,_init_,方法中调用基类的该方法,并传递,self,参数,子类会覆盖父类同名的函数,多重继承,67,典型的,python,文件结构,68,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,69,文件相关,打开文件,open(name,mode),、,file(name,mode),打开文件失败时会产生一个,IOError,异常,文件模式,操作,r,以读方式打开,w,以写方式打开(必要时清空),a,以追加模式打开(从,EOF,开始,必要时创建新文件),r+,以读写模式打
23、开,w+,以读写模式打开(参见,w,),a+,以读写模式打开(参见,a,),rb,以二进制读模式打开,wb,以二进制写模式打开(参见,w,),ab,以二进制追加模式打开(参见,a,),rb+,以二进制读写模式打开(参见,r+,),wb+,以二进制读写模式打开(参见,w+,),ab+,以二进制读写模式打开(参见,a+,),70,文件相关,写文件,write(str),向文件写入字符串,writelines(seq),列表或元组为参数,将其写入文件,读文件,read(),读取内容到字符串,readline(),读取打开文件的一行,readlines(),读取所有行,并作为列表返回,文件内移动,se
24、ek(off,whence=0),在文件中移动文件指针,从,whence,偏移,off,指针(,whence=0,文件开始,,1,代表当前位置,,2,代表文件末尾),tell(),返回在文件中的位置,os,模块,71,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,72,异常,异常:程序出现了错误而在正常控制流意外采取的行为,python,中常见的异常,NameError:,尝试访问一个未申明的变量,ZeroDivisionError:,除数为,0,SyntaxError:python,解释器语法错误,Index
25、Error:,请求的索引超出序列范围,KeyError:,请求一个不存在的字典关键字,IOError:,输入,/,输出错误,AttributeError:,尝试访问未知的对象属,73,检测和处理异常,try-except,语句,带有多个,except,的,try,语句:,74,检测和处理异常,处理多个异常的,except,语句,捕获所有异常,75,检测和处理异常,else,子句:在,try,的范围内没有检测到异常时,执行,else,字句,finally,字句:无论异常是否发生,是否捕捉到异常,都会执行的代码,try-finally,子句:目的不是捕获异常,而是用来维持一致的行为,76,培训内容,python,概述,python,基础,python,对象,条件和循环,函数,模块,面向对象编程,文件相关,异常,实验,77,






