Python程序设计第三章常用数据结构课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Python程序设计第三章常用数据结构课件.ppt》由会员分享,可在线阅读,更多相关《Python程序设计第三章常用数据结构课件.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PythonPython程序程序设计设计Programming in PythonProgramming in Python主讲:庞胜利主讲:庞胜利2第三章 常用数据结构数字字符串列表元组字典为什么使用内置对象内置对象使程序更容易编写内置对象可以满足大部分的应用内置对象往往比定制的数据结构更有效率速度方面,内置对象优化了用C实现的数据结构算法内置对象是语言的标准的一部分数字Python提供了常用的数字类型:整数、浮点数以及与之相关的语法和操作允许使用八进制、十六进制常量提供了复数类型提供了无穷精度的长度类型(只要内存空间允许,可以增长成为任意位数的整数)数字常量数字数字常量常量1234,-24
2、,0一般整数(c语言长整型)999999999999999999999999999L98888888888888888l长整型数(无限大小)1.23,3.14e-10,4E210,4.0e+210浮点数(C语言双精度浮点数)0177,0 x9ff八进制、十六进制3+4j,3.0+4.0j,3J复数常量内置数学工具和扩展表达式操作符+、-、*、/、*内置数学函数pow、abs公用模块random、math等专业扩展NumPy矩阵、向量处理等变量和基本的表达式变量就是用来记录程序中的信息,它的特点:变量像对象一样不需要声明变量在第一次赋值时创建变量在表达式中使用将被替换为他们的值变量在表达式中使用
3、以前必须已经赋值数字的基本应用 a=3 b=4 a+14 a-12 b*312 b/22 a%21 b*216 2.0*b16.0 c*2Traceback(most recent call last):File,line 1,in NameError:name c is not defined b/2+a5 b/(2.0+a)0.80000000000000004 print b/(2.0+a)0.8数字显示的格式 num=1/3.0 num0.33333333333333331 print num0.333333333333%e%num3.333333e-01%2.2f%num0.33 八
4、进制、十六进制将一个整数变为其八进制、十六进制的数字字符串oct hex将一个数字的字符串变换成一个整数,第二个参数用于指示变换后的数字的进制用字符串格式表达式转换成八进制、十六进制的字符串 oct(64)0100 hex(64)0 x40 int(0100)100 int(0100,8)64 int(0 x40,16)64%o%x%X%(64,64,255)100 40 FF数学内置函数和内置模块math模块-普通数学函数cmath模块-处理复数的模块 acos,fsum,acosh,hypot,asin,isinf,asinh,isnan,atan,ldexp,atan2,log,atan
5、h,log10,ceil,log1p,copysign,modf,cos,pi,cosh,pow,degrees,radians,e,sin,exp,sinh,fabs,sqrt,factorial,tan,floor,tanh,fmod,trunc frexp,acos,log,acosh,log10,asin,phase,asinh,pi,atan,polar,atanh,rect,cos,sin,cosh,sinh,e,sqrt,exp,tan,isinf,tanh isnan,random模块用于产生随机数 import random random.random()0.33452758
6、558893336 random.randint(1,10)5 random.choice(a,b,c)c字符串在第二章已经简单介绍过字符串简单回顾字符串常量:单引号双引号三引号转义自然字符串Unicode字符串字符串转义转义字符同C语言的转义字符转义意义 newline行连续反斜线单引号”双引号a响铃b倒退f换页n新行转义意义r返回t水平制表符v垂直制表符uhhhhUnicode16位的十六进制值UhhhhUnicode32位的十六进制值xhh十六进制值0oo八进制值0Nullother不转义(保留)字符串基本操作+字符串合并*字符串重复 len(abc)3 abc+defabcdef ab
7、c defabcdef hello*4hellohellohellohello abc+9Traceback(most recent call last):File,line 1,in TypeError:cannot concatenate str and int objects字符串基本操作可以用for语句在一个字符串中进行迭代,并使用in表达式操作符进行成员关系的测试,这实际上是一种搜索for循环指派了一个变量去获取一个序列其中的元素,并对每一个元素执行一个或多个语句,变量c相当于在字符串中步进的指针 s=hello for c in s:.print c,.h e l l o h in
8、 sTrue b in sFalse字符串索引和分片字符串是字符的有序集合,能够通过其位置来获得他们的元素Python中字符串中的字符是通过索引提取的索引从0开始,但不同于C语言的是可以取负值,表示从末尾提取,最后一个是-1,前一个是-2,依次类推,认为是从结束处反向计数 s=spam s0s s1p s-1m s-2a字符串索引和分片分片:从字符串中分离提取了一部分内容(子字符串);可以用于提取部分数据,分离出前、后缀等场合。当使用一对以冒号分隔的偏移索引字符串这样的序列对象时,Python就返回一个新的对象,其中包含了以这对偏移所标识的连续的内容。左边的偏移被取作是下边界(包含下边界在内)
9、,而右边的偏移被认为是上边界(不包括上边界在内)。如果被省略上下边界的默认值分别对应为0和分片对象的长度 s=spam s1:3pa s1:pam s:-1spa s:spam索引和分片的总结索引(si)获取特定偏移的元素第一个元素的偏移为0负偏移索引意味着从最后或右边反向进行计数s0获取第一个元素s-2获取倒数第二个元素分片(si:j)提取对应的部分作为一个序列上边界并不包含在内分片的边界默认为0和序列的长度,如果没有给出的话s1:3获取从偏移为1开始,直到但不包含偏移为3的元素s1:获取了从偏移为1直到末尾之间的元素s:3获取从偏移为0直到但不包含偏移为3的元素s:-1获取从偏移为0直到但
10、不包含最后一个元素之间的元素s:获取从偏移为0直到末尾之间的所有元素分片的扩展形式在Python2.3后,分片表达式增加了一个可选的第三个索引,用作步进选取完整形式为:XI:J:K,这表示:索引(获取)对象X中元素,从偏移为I直到J-1,每隔K元素索引一次K默认为1,这就是通常在切片中从左至右提取每个元素的原因步进为负数表示将会从右至左进行而不是从左至右分片的扩展形式X1:10:2会取出X中,偏移量1-9之间,间隔一个元素的元素,即获取偏移量为1、3、5、7、9 s=abcdefghijklmnop s1:10:2bdfhj s:2acegikmo s=0123456 s:0123456 s:
11、-16543210 s:-26420 s1:5:-1 s5:1:-15432 s9:-16543210 s6:-1:-1 s6:-2:-16字符串转化Python不允许字符串和数字直接相加。这是有意设计的,因为+既能够进行加法运算也能够进行合并运算,这样的语法会变得模棱两可,因此,Python将其作为错误处理,在Python中,如果让操作变得复杂或含糊,就会避免这样的语法 15+1Traceback(most recent call last):File,line 1,in TypeError:cannot concatenate str and int objects字符串转化如果用户从文件
12、或用户界面得到一个作为字符串的数字,怎么把这个字符串变为数字型呢?这就用到类型的转换函数 s=42 type(s)i=int(s)type(i)s1=str(i)type(s1)s=15 s+1Traceback(most recent call last):File,line 1,in TypeError:cannot concatenate str and int objects int(s)+116通过明确的手动类型转换再进行+操作常用的类型转换还有字符串到浮点型的转换之后会深入学习内置的eval函数,用于运行一个包含了Python表达式代码的字符串 s=15.0 float(s)15.
13、0 eval(12)12 eval(12+3)15字符串代码转换单个字符可以通过ord函数转换为对应的ASCII数值(整数)chr函数相反,可以将一个整数转换为对应的字符 ord(a)97 chr(97)a修改字符串缺省情况下,字符串对象是“不可变序列”,不可变的意思是不能实地的修改一个字符串那如何改变一个字符串呢?这就要利用合并、分片这样的工具来建立并赋值给一个新的字符串;必要的话,可以将结果赋值给字符串最初的变量名 s=spam s0=xTraceback(most recent call last):File,line 1,in TypeError:str object does not
14、 support item assignment s=spam s=s+SPAM sspamSPAM s=s:4+OK!+s-1 sspamOK!M修改字符串每修改一次字符串就生成一个新的字符串对象,这看起来好像会造成效率下降,其实,在Python内部会自动对不再使用的字符串进行垃圾回收,所以,新的对象重用了前面已有字符串的空间Python的效率比我们想象的要好字符串格式化Python可以用%操作符编写格式化的字符串格式化字符串:1、在%操作符左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都以%开头,如%d、%f等2、在%操作符右侧放置一个对象(或多个,在括号内)
15、,这些对象会被插入到左侧格式化字符串的转换目标的位置上 bookcount=10 there are%d books%bookcountthere are 10 books字符串格式化%d%s%d you%(1,spam,4)1 spam 4 you%s-%s-%s%(42,3.1415926,1,2,3)42-3.1415926-1,2,3左侧的目标位置都要求是%s(字符串),这就表示要将右边的对象都转换为字符串另外要注意的是,格式化总会返回新的字符串作为结果,另外要注意的是,格式化总会返回新的字符串作为结果,而不是对左侧的字符串进行修改,由于字符串是不可变的;而不是对左侧的字符串进行修改,
16、由于字符串是不可变的;因此,如果需要的话,可以分配一个变量名来保持结果因此,如果需要的话,可以分配一个变量名来保持结果字符串格式化ConversionMeaningdSigned integer decimal.iSigned integer decimal.oSigned octal value.uObsolete type it is identical to d.xSigned hexadecimal(lowercase).XSigned hexadecimal(uppercase).eFloating point exponential format(lowercase).EFloat
17、ing point exponential format(uppercase).fFloating point decimal format.FFloating point decimal format.gFloating point format.Uses lowercase exponential format if exponent is less than-4 or not less than precision,decimal format otherwise.GFloating point format.Uses uppercase exponential format if ex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 第三 常用 数据结构 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内