培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验什么是Python•Python•优雅而健壮的编程语言•注重如何解决问题Python的特点•高级•面向对象•可移植性•可扩展性•可嵌入性•健壮性•解释性•易学易读易用为什么是python•简单易学,功能丰富•与c、c++、java相比•与其他的脚本语言相比–perl:对符号语法的过度使用–javascript:通常嵌入到html网页,依赖浏览器下载和安装•下载:•安装•环境变量:Path=C:\ProgramFiles\Python24HelloWorld•第一个Python程序–print“HelloWorld!”•命令行•编辑器Python的语法特色•注释(#)•继续(\)•多个语句构成的代码组(:)•缩进分隔•模块•help培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验Python的基础—变量•变量的赋值–astring=“hello”–增量赋值:x+=1(python2.0开始)、–多重赋值:x=y=z=1–多元赋值:x,y,z=1,2,“hello”(x,y,z)=(1,2,“hello”)提高可读性Python的基础—标识符•第一个字符必须是字母或下划线_•其他字符可以是字母、数字或下划线•大小写敏感•关键字:Python的基础—无处不在的引用•变量的定义:在第一次赋值时自动声明•Python是一种动态类型的语言•无处不在的引用:–Python中的每个值(而不是变量)都有一个唯一的标识–任何变量名之间的赋值都是引用的赋值•x=3•y=x•z=y3xzy培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验Python的对象•任何类型的值都是一个对象•Python对象的三个特性–身份:用id()查看–类型:用type()查看–值Python数据类型—概述•标准类型–数字•Integer整型Boolean布尔型Longinteger长整型•Floatingpointrealnumber浮点型•Complexnumber复数型–String字符串–List列表–Tuple元组–Dictionary字典Python数据类型—概述(续)•其他的内建类型–Type类型–Null对象–文件–Set集合–函数–模块–类Python数据类型—标准类型操作符•对象值的比较•对象身份比较–x=y=3.3–x=3.3;y=3.3–x=3.3;y=2+1.3–xisy•布尔类型操作符3.3xyPython数据类型—标准类型内建函数•type()•cmp()–obj1obj2返回负数–Obj1obj2返回正数–Obj1=obj2返回0•str()和repr()以及’’操作符–以字符串的方式获得对象的类型、内容、数值等属性•eval()Python数据类型—可变对象和不可变对象•不可变对象:对象创建之后,其值不能更新•可变对象:对象创建之后,其值可以更新培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验数字类型序列类型字符串列表元组映射类型字典Python数据类型—数字•整型:32位机器上,标准整型的取值范围是-231——231-1•布尔型:只有两个值的整型(0和1),python2.3开始支持布尔型•长整型:标准整型的超级,能表达的数值仅与机器支持的内存大小有关系。23434333L•双精度浮点型:占8个字节(64位),其中53位表示底,11位表示指数,一位表示符号。-77.,2.3434433,9.78e-23,float(12)•复数:a=4.56+8j;a.real表示实部,a.imag表示虚部数字类型的操作符•支持不同的数字类型相加—强制类型转换数字类型的操作符(续)算数操作符功能expr1**expr2幂运算+expr结果符号不变-expr对结果符号去负expr1*expr2表达式1乘以表达式2expr1/expr2表达式1除以表达式2(传统除或真正除)expr1//expr2表达式1地板除以表达式2(python2.2加入)expr1%expr2表达式1对表达式2取余(模除)expr1+expr2加expr1-expr2减数字类型的操作符(续)•位操作符(只适用于整型)位操作符功能~num单目运算,对数的每一位取反num1num2num1右移num2位num1num2num1左移num2位num1&num2num1与num2按位与num1^num2num1异或num2num1|num2num1与num2按位或数字类型的内建函数•转换函数:将其他类型的数字转换为相应类型–int()、long()、float()、complex()–bool()python2.2开始•功能函数:–abs(num)绝对值–coerce(num1,num2)将num1和num2转换为同一类型,然后以一个元组的形式返回–divmod(num1,num2)获得商和余数的元组–pow(num1,num2,mod=1)指数运算–round(flt,ndig=1)对浮点型进行四舍五入运算数字类型的相关模块模块介绍decimal十进制浮点运算类(Decimal)math/cmath标准C库数学运算函数。常规数学运算在math模块,复数运算在cmath模块random多种位随机数生成器序列类型—字符串、列表、元组•序列:成员有序排列,可以通过下标访问其成员•字符串:‘hello’“hello”’’’hello’’’•列表:[2,4,’python’][2.4,6.8,‘python’,[1,3,“helloworld”]]•元组:(3.3,6,“computer”)(4,(“hello”,9),[1.1,5.7,8])•序列有相同的访问方式:培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验数字类型序列类型字符串列表元组映射类型字典序列类型的操作符•成员关系操作符:in,notin•连接操作符:+•重复操作符:*•切片操作:[][:][::]0indexlen(sequence)-1序列类型的内建函数•类型转换函数函数含义list(iter)把可迭代对象转换为列表str(obj)把obj对象转换为字符串unicode(obj)把对象转换为unicode字符串tuple(iter)把一个可迭代对象转换成元组序列类型的内建函数(续)函数名功能enumerate(iter)接受一个可迭代对象为参数,返回一个enumerae对象,该对象生成由每个元素的index值和item值组成的元组len(seq)返回seq的长度max(iter,key=nune)返回最大值min(iter,key=none)返回最小值reversed(seq)接受一个序列作为参数,返回一个以逆序访问的迭代器zip()接受n个序列类型对象参数,返回一个列表,该列表的每个元素都是一个元组,第一个元组是每个参数的第一个元素所组成的,以此类推培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验数字类型序列类型字符串列表元组映射类型字典字符串类型•字符串的创建和赋值•访问字符串•改变字符串(字符串是不可变的)•删除字符或字符串字符串类型的操作符•序列类型通用的操作符in,notin,+,等•只适用于字符串的操作符–格式化操作符%格式化字符转换方式%r优先用repr()函数进行字符串转换%s优先用str()函数进行字符串转换%d/%i转换成有符号十进制数%u转换成无符号十进制数%o转换成无符号八进制数%x/%X转换成无符号十六进制数(x/X代表转换后的大小写)%e/%E转换成科学计数法%f/%F转换成浮点数%%输出%字符串类型的内建函数•标准内建函数cmp()•序列类型函数len()、max()、min()、enumerate()、zip()、sorted()•字符串类型函数–raw_input()提示用户输入并将这个输入返回–str()返回字符串–unicode()返回unicode字符串–char()用0-255内的整型为参数,返回对应的字符–unichr()同char(),但返回的是unicode字符–ord()以一个字符为参数,返回对应的ASCII数值或unicode数值字符串类型的相关模块•string模块:字符串模块相关函数和工具•re:正则表达式•struct:字符串和二进制之间的转换•crypt:单方面加密•……培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验数字类型序列类型字符串列表元组映射类型字典列表类型•创建列表并赋值•访问列表的元素及更新•删除列表中的元素或列表本身列表类型操作符•标准类型操作符•序列类型操作符•内建函数–cmp()、len()、max()、min()、reversed()–sorted()、enumerate()、zip()–sum()–list()、tuple()列表类型内建函数•list.append(obj)向列表中添加一个对象obj•list.count(obj)返回一个对象obj在列表中出现的次数•list.extend(obj)把序列obj中的内容添加到列表中•list.index(obj,i=0,j=len(list))返回list[k]•list.insert(index,obj)在index位置插入对象obj•list.pop(index=-1)删除并返回指定位置的对象,默认是最后一个对象•list.remove(obj)从列表中删除对象obj•list.reversed()•list.sort()列表类型的特性•列表有容器和可变特性•堆栈—后进先出–list.append()向队列尾部添加–list.pop()从队列尾部删除•队列—先进先出–list.append()向队列尾部添加–list.pop(0)从队列头部删除培训内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常•实验数字类型序列类型字符串列表元组映射类型字典元组类型•与列表很相似,但元组是不可变的•创建一个元组并赋值•访问元组中的值•更新元组:对现有元组构造一个新的元组•移除元组:del•元组的操作符和内建函数元组的特性•不可变性对元组的影响•元组中的可变对象依然可变•所有的多对象的、逗号分隔的、没有明确用符号定义的,都默认为元组•单元素元组•list()和tuple()元组和列表的相互转换Python对象的深拷贝和浅拷贝•例如:–person=['name',['savings',100.00]]–hubby=person[:]#slicecopy–wifey=list(person)#facfunccopy–[id(x)forxinperson,hubby,wifey]•浅拷贝•深拷贝copy.deepcopy–Importcopy–hubby=person[:]#slicecopy–wifey=copy.deepcopy(person)•copy模块:copy()浅拷贝,deepcopy()深拷贝序列类型小结•操作符–in,notin,+,*,[],[:],[::]•内建函数–list,str,unicode,tuple,enumerate,len,max,min,reversed,zip,sorted–raw_input,char,ord–sum