1、3.23.2 数据与结构数据与结构( (第一课时第一课时) ) 【教学目标】教学目标】 认识数据的类型。 熟悉队列结构的概念和特点,能够运用 Python 语言队列进行操作。 【教学重点】【教学重点】简单数据类型与线性数据结构。 【教学难点】【教学难点】线性数据结构。 【教学过程】【教学过程】 一、引入一、引入 学生预习,阅读第 56、57 页“任务一探究网购订单处理”之“活动 1了 解订单数据” ,填写第 57 页的表 3.2.1。教师检查,并评讲填写情况,引出数据 类型。 表3.2.1 网购中的订单数据 网站名称订单中的数据Python中对应的数据类型 某电商网站 商品名称字符串来源:Z*
2、xx*k.Com 单价浮点型 数量整型来源:学#科#网 高中生学籍网 姓名字符串 出生日期日期型 是否团员布尔型(逻辑型) 二、数据类型二、数据类型 1.1.认识认识PythonPython简单简单数据类型数据类型 整数(int) 用来表示整数数值,就是没有小数部分的数值。在 Python 中,整数包括正整数、 负整数和 0,不带小数点。并且它的位数是任意的。 浮点数(float) 浮点数由整数部分和小数部分组成,主要用于处理包括小数的数。 字符串(str) 在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分 别是:单引号、双引号和三引号,这三种引号形式在语义上没有差别,只
3、是在形 式上有些差别,其中单引号和双引号中的字符序列必须在一行上,而三引号内的 字符序列可以分布在连续的行上。 布尔(bool) 和其他编程语言一样, Python布尔类型也是用于逻辑运算, 有两个值: True (真)和False(假)。在Python中的布尔值可以转化为数值,其中True表示1, False表示0。 【教师示范操作】 type(8)#type()函数返回数据的类型 #返回int类型 type(3.14) #返回float类型 type(Thank you!) #返回str类型 type(True)来源:学&科&网 #返回bool类型 2 2. .了解了解PythonPyth
4、on复合数据类型复合数据类型 在Python语言中, 复合数据类型有元祖 (tuple) 、 集合 (set) 、 列表(list)、 字典(dict)等。 元组元组: 例如,某用户预订了商品编号为“ID0010230”、单价为15.68元、 数量为36,可将这3个不同类型的简单数据组织成一个复合数据类型元祖。 记作: BookInfo0=(ID0010230,15.68,36) 另一用户预订了商品编号为“ID2315937”、单价为20元、数量为2,可记作: BookInfo1=(ID2315937,20,2) BookInfo0=(ID0010230,15.68,36) type(Book
5、Info0) #返回元祖类型 BookInfo1=(ID2315937,20,2) BookInfo11 20#返回元祖BookInfo1中索引为1的项的值 计算订单额: BookInfo01*BookInfo02+BookInfo11*BookInfo12 604.48#返回计算结果 集合集合 今天的订单汇总,可以定义为一个集合(集合里的项称为元素,彼此 之间没有顺序): BookSet=BookInfo0,BookInfo1 BookSet=BookInfo0,BookInfo1 type(BookSet) #返回集合类型 BookSet (ID2315937, 20, 2), (ID00
6、10230, 15.68, 36)#返回集合的值 计算订单额: t=0 for i in BookSet: t+=i1*i2 (将本行光标后退至行首,再按回车) t 604.48 列表列表 今天的订单汇总, 也可以按订单产生的新后顺序组成一个列表(列表 里的项是有顺序编号 的): BookList=BookInfo0, BookInfo1 BookList=BookInfo0, BookInfo1 type(BookList) #返回列表类型 BookList0 ( ID0010230, 15.68, 36) BookList1 (ID0010359, 0.68, 5) BookList01*
7、BookList02+BookList11*BookList12 604.48#返回计算结果 字典字典(dictionary)是Python中标准数据类型之一,它也是容器类型,可以 存储不同的数据,并且具有可变性。字典顾名思义,就是拥有类似字典的特性, 通过“键”能够快速查找对应的“值”。 这种基本的数据结构称为“键值对键值对”。广义上来 说,其他标准数据类型中也存在“键值对键值对”,只是它们的键只能是索引号,而字典 的键可以是不可变的数据类型(数字、字符串和元组)。 字典上的主要操作是用一个键存储一个值,并提取给定键的值。如果在字典 中更换的键值已经存在,则会变成要变成的值,如下实例: 实例
8、实例 tel = Jack : 1234, Mark : 2525, Polo : 1111 telJack = 1 print(tel) #输出结果,在字典中,键值是分号之前的 Jack: 1, Mark: 2525, Polo: 1111 字典直接从键值对的序列中执行,如下实例 实例1 tel = dict(sape, 4139), (guido, 4127), (jack, 4098) print(tel) #输出结果为: sape: 4139, guido: 4127, jack: 4098 #会发现直接转化成字典。 key : value 实例2 tec = x : x*2 for
9、x in (2, 4, 6) print(tec)#输出结果 2: 4, 4: 16, 6: 36 实例3 knights =Apollo : the Brave, Prothemeus : the ugly for k, v in knights.items(): print(k,-,v) #输出结果 Apollo - the Brave Prothemeus - the ugly 实例4 for i, v in enumerate(tick, Dida, Mouo): print(i, v)# enumerate()函数返回的是列表中的索引与键值 #输出结果 0 tick 1 Dida 2
10、 Mouo 实例5 questions = name, quest, favoriate color answers = lacelot, the holy grail, blue for q, v in zip(questions, answers): print(What is your 0? It is 1.format(q, v) #通过zip函数把两个不相关的序列,弄成一组 #输出结果为: What is your name? It is lacelot. What is your quest? It is the holy grail. What is your favoriate
11、 color? It is blue. 3 3、数据类型转换:、数据类型转换: 函数格式使用示例描述来源:Z_xx_k.Com int(x ,base)int(8)可以转换的包括 String 类型和其他数字类 型,但是会丢失精度 float(x)float(1)/float( 1) 可以转换 String 和其他数字类型,不足的位 数用 0 补齐,例如 1 会变成 1.0 complex(real ,im ag) complex(1)/co mplex(1,2) 第一个参数可以是 String 或者数字,第二个 参数只能为数字类型, 第二个参数没有时默认 为 0 str(x)str(1)将数
12、字转化为 String repr(x)repr(Object)返回一个对象的 String 格式 eval(str)eval(12+23)执行一个字符串表达式,返回计算的结果,如 例子中返回 35 三、数据结构三、数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合 中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树, 图,堆,散列表等,如图所示: list(s)list(1,2,3,4)将序列转变成一个列表,参数可为元组、字 典、列表,为字典时,返回字典的 key 组成的 集合 chr(x)chr(0 x30)chr()用一个范围在 range(25
13、6)内的(就 是 0255)整数作参数,返回一个对应的字 符。返回值是当前整数对应的 ascii 字符。 ord(x)ord(a)返回对应的 ASCII 数值,或者 Unicode 数 值 hex(x)hex(12)把一个整数转换为十六进制字符串 oct(x)oct(12)把一个整数转换为八进制字符串 数据结构有很多种,一般来说,按照数据的逻辑结构对其进行简单的分类, 包括线性结构和非线性结构两类。 1、线性结构 线性结构又称为线性表。在线性结构中,除首元素没有前趋元素、尾元素线性结构又称为线性表。在线性结构中,除首元素没有前趋元素、尾元素 没有后继元素外,其他元素都只有一个前趋元素和一个后继
14、元素。线性表中数没有后继元素外,其他元素都只有一个前趋元素和一个后继元素。线性表中数 据元素之间也是一对一的关系。如下图所示:据元素之间也是一对一的关系。如下图所示:来源来源:Z.xx.k.Com 2、常见的线性数据结构常见的线性数据结构 常见的线性结构有:常见的线性结构有:栈、队列和串等都属于线性结构。栈、队列和串等都属于线性结构。 (1 1)栈)栈 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不 允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操 作叫入栈,取出元素叫出栈。 栈的结构就像一个集装箱,越先放进去的东西越晚才能拿出来,所以,栈常 应用于实
15、现递归功能方面的场景,例如斐波那契数列。 (2 2)队列)队列 队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在 另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元 素为出队,示例图如下: 使用场景:因为队列先进先出的特点,在多线程阻塞队列管理中非常适用。 队列是先进先出(FIFO)表,它的数据元素只能在一端依次添加(进队), 在另一端依次删除(出队)。典型的例子,如超市里排队付款的队伍。 三、小结三、小结 四、练习四、练习 试着模仿订单数据处理程序,编写单车道死胡同停车管理程序(栈的应用)。 参考程序:(“单车道死胡同停车管理程序单车道死胡同停车管理程序.py.py”)。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。