Python基础教程201612181主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常2什么是Python•Python•优雅而健壮的编程语言•注重如何解决问题3Python的特点•高级•面向对象•可移植性•可扩展性•可嵌入性•健壮性•解释性•易学易读易用4为什么是python•简单易学,功能丰富•与c、c++、java相比•与其他的脚本语言相比–perl:对符号语法的过度使用–javascript:通常嵌入到html网页,依赖浏览器5下载和安装•下载:•安装•环境变量:Path=C:\ProgramFiles\Python246HelloWorld•第一个Python程序–print“HelloWorld!”•命令行•编辑器7Python的语法特色•注释(#)•继续(\)•多个语句构成的代码组(:)•缩进分隔•模块•help8主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常9Python的基础—变量•变量的赋值–astring=“hello”–增量赋值:x+=1(python2.0开始)、–多重赋值:x=y=z=1–多元赋值:x,y,z=1,2,“hello”(x,y,z)=(1,2,“hello”)提高可读性10Python的基础—标识符•第一个字符必须是字母或下划线_•其他字符可以是字母、数字或下划线•大小写敏感•关键字:11Python的基础—无处不在的引用•变量的定义:在第一次赋值时自动声明•Python是一种动态类型的语言•无处不在的引用:–Python中的每个值(而不是变量)都有一个唯一的标识–任何变量名之间的赋值都是引用的赋值•x=3•y=x•z=y3xzy12主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常13Python的对象•任何类型的值都是一个对象•Python对象的三个特性–身份:用id()查看–类型:用type()查看–值14Python数据类型—概述•标准类型–数字•Integer整型Boolean布尔型Longinteger长整型•Floatingpointrealnumber浮点型•Complexnumber复数型–String字符串–List列表–Tuple元组–Dictionary字典15Python数据类型—概述(续)•其他的内建类型–Type类型–Null对象–文件–Set集合–函数–模块–类16Python数据类型—标准类型操作符•对象值的比较•对象身份比较–x=y=3.3–x=3.3;y=3.3–x=3.3;y=2+1.3–xisy•布尔类型操作符3.3xy17Python数据类型—标准类型内建函数•type()•cmp()–obj1obj2返回负数–Obj1obj2返回正数–Obj1=obj2返回018Python数据类型—可变对象和不可变对象•不可变对象:对象创建之后,其值不能更新•可变对象:对象创建之后,其值可以更新19主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典20Python数据类型—数字•整型: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表示虚部21数字类型的操作符•支持不同的数字类型相加—强制类型转换22数字类型的操作符(续)算数操作符功能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减23数字类型的操作符(续)•位操作符(只适用于整型)位操作符功能~num单目运算,对数的每一位取反num1num2num1右移num2位num1num2num1左移num2位num1&num2num1与num2按位与num1^num2num1异或num2num1|num2num1与num2按位或24数字类型的内建函数•转换函数:将其他类型的数字转换为相应类型–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)对浮点型进行四舍五入运算25数字类型的相关模块模块介绍decimal十进制浮点运算类(Decimal)math/cmath标准C库数学运算函数。常规数学运算在math模块,复数运算在cmath模块random多种位随机数生成器26主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典27序列类型—字符串、列表、元组•序列:成员有序排列,可以通过下标访问其成员•字符串:‘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])•序列有相同的访问方式:28序列类型的操作符•成员关系操作符:in,notin•连接操作符:+•重复操作符:*•切片操作:[][:][::]0=index=len(sequence)-129序列类型的内建函数•类型转换函数函数含义list(iter)把可迭代对象转换为列表str(obj)把obj对象转换为字符串unicode(obj)把对象转换为unicode字符串tuple(iter)把一个可迭代对象转换成元组30序列类型的内建函数(续)函数名功能enumerate(iter)接受一个可迭代对象为参数,返回一个enumerae对象,该对象生成由每个元素的index值和item值组成的元组len(seq)返回seq的长度max(iter,key=nune)返回最大值min(iter,key=none)返回最小值reversed(seq)接受一个序列作为参数,返回一个以逆序访问的迭代器zip()接受n个序列类型对象参数,返回一个列表,该列表的每个元素都是一个元组,第一个元组是每个参数的第一个元素所组成的,以此类推31主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典32字符串类型•字符串的创建和赋值•访问字符串•改变字符串(字符串是不可变的)•删除字符或字符串33字符串类型的操作符•序列类型通用的操作符in,notin,+,等•只适用于字符串的操作符–格式化操作符%格式化字符转换方式%r优先用repr()函数进行字符串转换%s优先用str()函数进行字符串转换%d/%i转换成有符号十进制数%u转换成无符号十进制数%o转换成无符号八进制数%x/%X转换成无符号十六进制数(x/X代表转换后的大小写)%e/%E转换成科学计数法%f/%F转换成浮点数%%输出%34字符串类型的内建函数•标准内建函数cmp()•序列类型函数len()、max()、min()、enumerate()、zip()、sorted()•字符串类型函数–raw_input()提示用户输入并将这个输入返回–str()返回字符串–unicode()返回unicode字符串–char()用0-255内的整型为参数,返回对应的字符–unichr()同char(),但返回的是unicode字符–ord()以一个字符为参数,返回对应的ASCII数值或unicode数值35字符串类型的相关模块•string模块:字符串模块相关函数和工具•re:正则表达式•struct:字符串和二进制之间的转换•crypt:单方面加密•……36主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典37列表类型•创建列表并赋值•访问列表的元素及更新•删除列表中的元素或列表本身38列表类型操作符•标准类型操作符•序列类型操作符•内建函数–cmp()、len()、max()、min()、reversed()–sorted()、enumerate()、zip()–sum()–list()、tuple()39列表类型内建函数•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()40列表类型的特性•列表有容器和可变特性•堆栈—后进先出–list.append()向队列尾部添加–list.pop()从队列尾部删除•队列—先进先出–list.append()向队列尾部添加–list.pop(0)从队列头部删除41主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典42元组类型•与列表很相似,但元组是不可变的•创建一个元组并赋值•访问元组中的值•更新元组:对现有元组构造一个新的元组•移除元组:del•元组的操作符和内建函数43元组的特性•不可变性对元组的影响•元组中的可变对象依然可变•所有的多对象的、逗号分隔的、没有明确用符号定义的,都默认为元组•单元素元组•list()和tuple()元组和列表的相互转换44序列类型小结•操作符–in,notin,+,*,[],[:],[::]•内建函数–list,str,unicode,tuple,enumerate,len,max,min,reversed,zip,sorted–raw_input,char,ord–sum•模块–string,re45主要内容•python概述•python基础•python对象•条件和循环•函数•模块•面向对象编程•文件相关•异常数字类型序列类型字符串列表元组映射类型字典46映射类型—字典•{key1:value1,key2:value2,key3:value3,…}•创建字典和赋值–dict1={}创建一个空字典–dict2={’name’:’joe’,’age’:30}–dict()方法•访问字典中的值–通过键访问相应的值dict2[’name’]–访问字典的键dict2.keys(