Python程序设计-第三章常用数据结构-课件.ppt
《Python程序设计-第三章常用数据结构-课件.ppt》由会员分享,可在线阅读,更多相关《Python程序设计-第三章常用数据结构-课件.ppt(61页珍藏版)》请在三一办公上搜索。
1、Python程序设计Programming in Python,主讲:庞胜利,Python程序设计Programming in Pyth,2,第三章 常用数据结构,数字字符串列表元组字典,2第三章 常用数据结构数字,Python程序设计-第三章常用数据结构-课件,为什么使用内置对象,内置对象使程序更容易编写内置对象可以满足大部分的应用内置对象往往比定制的数据结构更有效率速度方面,内置对象优化了用C实现的数据结构算法内置对象是语言的标准的一部分,为什么使用内置对象内置对象使程序更容易编写,数字,Python提供了常用的数字类型:整数、浮点数以及与之相关的语法和操作允许使用八进制、十六进制常量提供
2、了复数类型提供了无穷精度的长度类型(只要内存空间允许,可以增长成为任意位数的整数),数字Python提供了常用的数字类型:整数、浮点数以及与之相,数字常量,数字常量数字常量1234,-24,0一般整数(c语言长整型),内置数学工具和扩展,表达式操作符+、-、*、/、*内置数学函数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,数字的基本应用 a = 3 c * 2 b,数字显示的格式, num = 1 / 3.0 num0.33333
4、333333333331 print num0.333333333333 %e%num3.333333e-01 %2.2f%num0.33,数字显示的格式 num = 1 / 3.0,八进制、十六进制,将一个整数变为其八进制、十六进制的数字字符串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,八进制、十
5、六进制将一个整数变为其八进制、十六进制的数字字符串,数学内置函数和内置模块,math模块-普通数学函数cmath模块-处理复数的模块,数学内置函数和内置模块math模块-普通数学函数 acos,random模块,用于产生随机数, import random random.random()0.33452758558893336 random.randint(1, 10)5 random.choice(a, b, c)c,random模块用于产生随机数 import rand,字符串,在第二章已经简单介绍过字符串简单回顾字符串常量:单引号双引号三引号转义自然字符串Unicode字符串,字符串在第二
6、章已经简单介绍过字符串,字符串转义,转义字符同C语言的转义字符,字符串转义转义字符同C语言的转义字符转义意义 newlin,转义意义r返回t水平制表符v垂直制表符uhhhhUn,字符串基本操作,+字符串合并*字符串重复, len(abc)3 abc+defabcdef abc defabcdef hello*4hellohellohellohello abc+9Traceback (most recent call last): File , line 1, in TypeError: cannot concatenate str and int objects,字符串基本操作+字符串合并 l
7、en(abc),字符串基本操作,可以用for语句在一个字符串中进行迭代,并使用in表达式操作符进行成员关系的测试,这实际上是一种搜索for循环指派了一个变量去获取一个序列其中的元素,并对每一个元素执行一个或多个语句,变量c相当于在字符串中步进的指针, s = hello for c in s:. print c,. h e l l o h in sTrue b in sFalse,字符串基本操作可以用for语句在一个字符串中进行迭代,并使用,字符串索引和分片,字符串是字符的有序集合,能够通过其位置来获得他们的元素Python中字符串中的字符是通过索引提取的索引从0开始,但不同于C语言的是可以取
8、负值,表示从末尾提取,最后一个是-1,前一个是-2,依次类推,认为是从结束处反向计数, s = spam s0s s1p s-1m s-2a,字符串索引和分片字符串是字符的有序集合,能够通过其位置来获得,字符串索引和分片,分片:从字符串中分离提取了一部分内容(子字符串);可以用于提取部分数据,分离出前、后缀等场合。当使用一对以冒号分隔的偏移索引字符串这样的序列对象时,Python就返回一个新的对象,其中包含了以这对偏移所标识的连续的内容。左边的偏移被取作是下边界(包含下边界在内),而右边的偏移被认为是上边界(不包括上边界在内)。如果被省略上下边界的默认值分别对应为0和分片对象的长度, s =
9、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直到但不包含最后一个元素之间的元素s:获取从偏移为
10、0直到末尾之间的所有元素,索引和分片的总结索引(si)获取特定偏移的元素,分片的扩展形式,在Python2.3后,分片表达式增加了一个可选的第三个索引,用作步进选取完整形式为:XI:J:K,这表示:索引(获取)对象X中元素,从偏移为I直到J-1,每隔K元素索引一次K默认为1,这就是通常在切片中从左至右提取每个元素的原因步进为负数表示将会从右至左进行而不是从左至右,分片的扩展形式在Python2.3后,分片表达式增加了一个可,分片的扩展形式,X1:10:2会取出X中,偏移量1-9之间,间隔一个元素的元素,即获取偏移量为1、3、5、7、9, s = abcdefghijklmnop s1:10:2
11、bdfhj s:2acegikmo, s = 0123456 s:0123456 s:-16543210 s:-26420 s1:5:-1 s5:1:-15432 s9:-16543210 s6:-1:-1 s6:-2:-16,分片的扩展形式X1:10:2会取出X中,偏移量1-9之间,字符串转化,Python不允许字符串和数字直接相加。这是有意设计的,因为+既能够进行加法运算也能够进行合并运算,这样的语法会变得模棱两可,因此,Python将其作为错误处理,在Python中,如果让操作变得复杂或含糊,就会避免这样的语法, 15 + 1Traceback (most recent call las
12、t): File , line 1, in TypeError: cannot concatenate str and int objects,字符串转化Python不允许字符串和数字直接相加。 ,字符串转化,如果用户从文件或用户界面得到一个作为字符串的数字,怎么把这个字符串变为数字型呢?这就用到类型的转换函数, 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 con
13、catenate str and int objects int(s) + 116,通过明确的手动类型转换再进行+操作,字符串转化如果用户从文件或用户界面得到一个作为字符串的数字,,常用的类型转换还有字符串到浮点型的转换之后会深入学习内置的eval函数,用于运行一个包含了Python表达式代码的字符串, s = 15.0 float(s)15.0, eval(12)12 eval(12 + 3)15,常用的类型转换还有字符串到浮点型的转换 s = 15,字符串代码转换,单个字符可以通过ord函数转换为对应的ASCII数值(整数)chr函数相反,可以将一个整数转换为对应的字符, ord(a)97
14、 chr(97)a,字符串代码转换单个字符可以通过ord函数转换为对应的ASCI,修改字符串,缺省情况下,字符串对象是“不可变序列”,不可变的意思是不能实地的修改一个字符串那如何改变一个字符串呢?这就要利用合并、分片这样的工具来建立并赋值给一个新的字符串;必要的话,可以将结果赋值给字符串最初的变量名, s = spam s0 = xTraceback (most recent call last): File , line 1, in TypeError: str object does not support item assignment, s = spam s = s + SPAM ss
15、pamSPAM s = s:4 + OK! + s-1 sspamOK!M,修改字符串缺省情况下,字符串对象是“不可变序列”,不可变的意,修改字符串,每修改一次字符串就生成一个新的字符串对象,这看起来好像会造成效率下降,其实,在Python内部会自动对不再使用的字符串进行垃圾回收,所以,新的对象重用了前面已有字符串的空间Python的效率比我们想象的要好,修改字符串每修改一次字符串就生成一个新的字符串对象,这看起来,字符串格式化,Python可以用%操作符编写格式化的字符串格式化字符串:1、在%操作符左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都以%开头,如%d
16、、%f等2、在%操作符右侧放置一个对象(或多个,在括号内),这些对象会被插入到左侧格式化字符串的转换目标的位置上, bookcount = 10 there are %d books%bookcountthere are 10 books,字符串格式化 bookcount = 10,字符串格式化, %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(字符串),这就表示要将右边的对象都转换为字符串,另外要注意的是,格式化总
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 第三 常用 数据结构 课件
链接地址:https://www.31ppt.com/p-1287617.html