《Python程序设计》 课件 项目5 列表与元组应用_第1页
《Python程序设计》 课件 项目5 列表与元组应用_第2页
《Python程序设计》 课件 项目5 列表与元组应用_第3页
《Python程序设计》 课件 项目5 列表与元组应用_第4页
《Python程序设计》 课件 项目5 列表与元组应用_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目5列表与元组应用了解常用的组合数据类型01理解序列的基本概念及序列的特点02理解列表的基本概念03知识目标掌握列表的常用内置函数和方法04理解列表推导式的基本概念05理解元组的基本概念06理解列表与元组的区别07能够掌握列表的创建01能够掌握列表元素的访问、列表的循环遍历02能够掌握使用常用内置函数和方法操作列表03能力目标能够完成列表中增加、修改、删除列表元素等操作04能够完成嵌套列表的创建、嵌套列表元素的访问05能够完成元组的创建06能够完成元组元素的访问07目录演讲比赛评分系统设计任务1快递超市管理系统设计任务2任务提出01任务分析02知识准备03任务1演讲比赛评分系统设计任务实现04任务总结05任务提出Part.01提出任务1.

某演讲比赛有11位评委为选手打分,选手的最终得分计算规则是:去掉一个最高分、去掉一个最低分,然后计算剩下所有得分的平均分,平均分即为该选手的最终得分。2.设计一个简单的比赛评分系统,实现求某位选手最终得分,如图所示。任务分析Part.02任务分析1.创建Python程序Score.py。2.创建一个列表用来保存选手的所有得分。3.找到列表中的最高分和最低分。4.计算列表中剩下的所有得分的平均值,即为选手的最终得分。5.测试运行程序,并通过输出结果检验程序。

本任务涉及到对多个评委的打分进行处理,需要创建列表用于保存和处理所有的得分,具体的任务实施分析如下:知识准备Part.03序列01列表02列表的循环遍历03知识准备列表的排序04常见的序列类型01序列的特点02常用的序列操作035.1序列组合数据类型是将多个相同数据类型或不同数据类型的数据组成的一个整体,根据数据组合方式不同,Python的组合数据类型可分为以下三种:序列类型、集合类型和字典类型。常见的序列类型在Python的内置数据类型中,序列是由一组有序的数据元素排列的集合,可以通过元素在序列中的位置操作其元素,即通过索引(也称下标)的方式操作序列中的一个或若干个数据元素。Python中常见的序列类型有列表(list)和元组(tuple),也包括前面讲到的字符串(string)类型。支持双向索引序列的特点正向递增的正数索引:自左向右,从0开始,第二个元素的索引是1,依此类推;反向递减的负数索引:自右向左,从-1开始,倒数第二个元素的索引为-2。字符串中元素的索引列表中元素的索引序列类型有着一些通用的特定操作,即字符串、列表、元组这些序列类型有着一样的序列元素的操作方式,如下所示。常用的序列操作通过正向索引、反向索引访问序列中的一个元素。通过切片访问序列中的部分元素。多个序列相加、序列与数字相乘,然后得到新的序列。使用成员运算符in和notin来判断序列中是否包含某元素。使用in运算符判断时,如果序列中包含某元素则返回结果为True,否则为False;而notin运算符则正好相反。序列的常用内置函数和方法。序列的常用内置函数和方法,如表所示。常用的序列操作函数/方法语法格式说明内置函数len(序列)计算序列的长度max(序列)返回序列的最大元素min(序列)返回序列的最小元素sum(序列,start=0)计算序列中所有元素的和,第2个参数start为可选参数,指定和的起始值,默认为0方法序列.index(元素)查找元素在序列中第一次出现的位置索引序列.count(元素)统计元素在序列中出现的次数列表的创建01访问列表元素02常用列表操作035.2列表Python中列表(list)类似于其他语言的数组,可以由一组不同数据类型的元素组成,且数据元素可以是任意类型,既可以是整型、浮点、布尔等简单数据类型,也可以是字符串、列表、元组、字典等组合数据类型。列表的创建创建列表的有三种常用的方式:使用中括号[]使用内置函数list()使用列表推导式列表的创建1.使用中括号[]使用中括号创建列表时,将每个列表元素用逗号分隔后,放到中括号“[]”中,语法格式如下:

列表变量名=[元素1,元素2,……]2.使用内置函数list()使用内置函数list()创建列表时,函数接收的参数必须是一个可迭代类型的数据,例如字符串、列表等类型的数据,语法格式如下:

列表变量名=list(可迭代类型的数据)创建列表,示例代码如下:列表的创建程序运行结果列表的创建3.使用列表推导式列表推导式是可以利用range()函数、元组、字典和集合等可以迭代循环的数据类型,用于快速生成一个满足指定需求的列表,语法格式如下:[表达式for迭代变量in可迭代对象[if条件表达式]]列表推导式的执行过程是,用for循环遍历可迭代对象,逐一将迭代对象的数据元素赋值给迭代变量,然后由包含迭代变量的表达式进行运算,最后将运算结果追加到列表中。如果使用if条件表达式,则是仅当if条件表达式为True时,才将迭代变量用于表达式运算。创建列表,包含数字0-9的平方数列表的创建程序运行结果创建列表,包含整数0-100中可以被3和5整除的所有数字程序运行结果访问列表元素1.使用索引,通过正向索引、反向索引的方式访问列表中一个指定位置的元素,语法格式如下:列表变量名[索引],……]程序运行结果使用索引方式访问列表元素,示例代码如下:访问列表元素2.使用切片,列表支持切片截取列表中的部分元素,语法格式如下:列表变量名[起始:结束:步长]切片截取从起始索引到结束索引的元素,如果步长是大于1的数,那么会跳过某些元素。注意:选取的区间左闭右开,不包含结束索引的元素程序运行结果使用切片访问列表元素,示例代码如下:常用列表操作列表类型是序列的一种,支持使用常用内置函数和序列的方法操作列表,也可以使用列表相加、列表与数字相乘等操作。此外,Python还提供了in和notin运算符,用于判断列表中是否包含某元素,使用in运算符判断时,如果存在则返回结果为True,否则为False。常用列表操作常用的列表操作,示例代码如下:程序运行结果程序运行结果使用while循环01使用for循环025.3列表的循环遍历使用while循环程序运行结果在使用while循环遍历列表时,通常在while循环前面定义列表和循环用的变量i,然后使用i小于列表的长度做判断条件,来限制循环执行的次数。使用while循环遍历列表,示例代码如下:使用for循环程序运行结果在使用for循环遍历列表时,依次将当前循环对应的列表元素赋值给for后面的变量,语法格式如下:for变量名in列表:

循环语句使用for循环遍历列表,示例代码如下:使用for循环使用for循环除了可以遍历整个列表,也可以遍历使用切片截取后的列表。程序运行结果使用for循环遍历切片截取后的列表,示例代码如下:5.4列表的排序列表中的元素可以进行升序、降序或者逆序排列。其中逆序就是将元素前后位置反转,最前面的元素放到最后面,最后面的元素放到最前面。列表的排序比如,列表[6,5,3,2,8,9]升序排列后变为[2,3,5,6,8,9]降序排列后变为[9,8,6,5,3,2]逆序排列后变为[9,8,2,3,5,6]列表的升降序排列可以使用sort()方法或者sorted()函数,逆序可以使用reverse()方法或者切片。列表的排序函数/方法语法格式说明sort()方法升序:列表.sort()降序:列表.sort(reverse=True)对原列表进行排序,即原列表会被排序后的列表覆盖。sorted()函数升序:sorted(列表)降序:sorted(列表,reverse=True)有返回值,会返回一个新的有序列表,原列表没有改变。reverse()方法列表.reverse()对原列表进行逆序排列,即原列表会被逆序后的列表覆盖。使用切片列表[::-1]使用省略起始和结束的索引、步长为-1的切片,原列表没有改变。列表的排序程序运行结果列表的升降序排列可以使用sort()方法或者sorted()函数。列表的排序操作,示例代码如下:列表的排序逆序可以使用reverse()方法或者切片.程序运行结果列表的逆序操作,示例代码如下:任务实现Part.04分析代码01编写代码02任务实现分析代码使用内置函数max()和min()找出列表中最大值和最小值,即最高分和最低分。对分数列表scores用sort()方法进行升序排列,第一个元素即为最低分,最后一个元素为最高分。通过分析任务要求可知,任务实现的步骤是:创建一个列表scores用来保存选手的所有得分,找到列表中的最高分和最低分,计算列表中剩下的所有得分的平均值,即为选手的最终得分。其中找列表中的最高分和最低分有以下两种办法:(1)启动PyCharm,新建Python项目Chapter05,新建Python文件Score.Py(2)在Score文件的代码编辑窗口,输入如下代码:编写代码程序运行结果(3)再创建第2个程序文件,在对话框中输入文件名Score2。在Score2.py文件的代码编辑窗口,输入如下代码:编写代码程序运行结果任务总结Part.05通过本任务的学习,全面的掌握了Python列表的创建、列表元素的访问、常见的列表操作、列表的循环遍历和列表的排序等内容。在使用时需要注意以下几点:创建列表除了可以使用中括号、内置函数list()、列表推导式以外,还可以通过复制现有列表、使用extend()或+运算符连接列表、使用itertools模块等方式来创建列表。Python中列表的索引是从0开始的,而不是从1开始。索引的取值范围是0至列表长度-1,如果使用的索引值超出索引范围时,程序会报索引越界错误。列表切片不包括结束索引对应的元素。如果起始索引大于或等于结束索引,并且没有指定负步长,那么切片将为空。不带任何参数的切片将返回整个列表。默认情况下,列表排序是基于列表中元素的升序排列。Python中还支持通过key参数来自定义排序依据,比如按照字符串长度、元素的某个属性或其他复杂逻辑进行排序。任务提出01任务分析02知识准备03任务2

快递超市管理系统设计任务实现04任务总结05任务提出Part.01提出任务设计一个简单的快递超市管理系统,用于对快递超市的快递进行管理与维护,主要包括添加快递单号、删除快递单号、修改快递单号、查询快递单号、退出系统等功能,系统界面如图所示。任务分析Part.02任务分析1.创建Python程序ExpressManage.py。2.编写程序完成功能界面显示提示用户选择功能。3.创建一个列表用来保存所有的快递单号。4.通过input()函数接收用户的选择。5.使用列表的基本操作完成用户选择的功能。6.测试运行程序,检验程序各项功能。

本任务主要实现的是快递单号的管理,可以使用列表存储所有的快递单号;通过关键字、函数或方法对列表的元素完成添加、修改、删除等操作,以实现对快递单号的管理与维护,具体的任务实施分析如下:知识准备Part.03管理列表元素01嵌套列表02知识准备增加列表元素01删除列表元素02修改列表元素035.5管理列表元素在Python中,列表是一个可变序列,允许增加、修改、删除列表中的数据元素,常见的操作方法如表所示。管理列表元素分类关键字/函数/方法语法格式说明增加元素insert()方法列表.insert(index,object)在列表的指定位置index前插入数据元素append()方法列表.append(object)将数据元素追加到列表的末尾extend()方法列表1.extend(列表2)将列表2的数据元素一次性追加到列表1的末尾管理列表元素分类关键字/函数/方法语法格式说明删除元素del关键字del列表[索引]删除列表中指定索引的数据元素pop()方法列表.pop()删除列表的最后一个元素列表.pop(索引)删除列表中指定索引的数据元素remove()方法列表.remove(数据)根据数据删除,删除列表中第一个出现该数据的元素clear()方法列表.clear()清空列表的所有元素修改元素赋值运算符=列表[索引]=新值修改列表中指定位置的数据删除元素del关键字del列表[索引]删除列表中指定索引的数据元素增加列表元素增加列表元素,示例代码如下:程序运行结果删除列表元素删除列表元素,示例代码如下:程序运行结果程序运行结果修改列表元素修改列表元素,示例代码如下:程序运行结果嵌套列表的创建与访问01嵌套列表的循环遍历02嵌套列表元素的操作035.6嵌套列表Python中,嵌套列表指的是一个列表中包含一个或多个子列表的情况。嵌套列表常用于表示二维数组、矩阵或更复杂的数据结构。嵌套列表的创建与访问访问嵌套列表中的元素,需要指定两个索引:第一个索引用于选择外部列表的元素(即子列表),第二个索引用于选择子列表中的元素。程序运行结果嵌套列表的创建与元素的访问,示例代码如下:嵌套列表可以通过索引的方式获取的元素,也可以通过单层while循环、for循环逐个获取嵌套列表的子元素。嵌套列表的循环遍历程序运行结果嵌套列表的单层循环遍历,示例代码如下:嵌套列表的多层循环遍历,示例代码如下:嵌套列表的循环遍历程序运行结果嵌套列表允许添加、修改、删除数据元素,与访问元素类似,也可以通过指定两个索引来修改嵌套列表中的元素。嵌套列表元素的操作程序运行结果嵌套列表元素的修改,示例代码如下:任务实现Part.04分析代码01编写代码02任务实现分析代码选择功能:可使用print()函数提供一个系统界面,并使用input()函数选择功能。实现功能:根据用户选择的功能,分别执行添加、删除、修改快递单号,可以通过列表list的append()方法、remove()方法、赋值等实现对列表元素(快递单号)的添加、修改、删除操作。结束:使用break跳出循环退出系统。通过任务分析,首先需要使用创建一个列表list用于保存所有的快递单号。接着使用循环语句保障程序持续运行,然后可将快递超市管理系统分为三个部分,选择功能、实现功能与结束。(1)启动PyCharm,在项目文件夹Chapter05中新建Python文件ExpressManage.Py

(2)在ExpressManage.py文件的代码编辑窗口,输入如下代码:编写代码编写代码程序运行结果任务总结Part.05通过本任务的学习,全面的掌握了列表元素的增加、删除和修改操作,以及嵌套列表的创建、访问、遍历、添加、修改、删除等操作。在使用时需要注意以下几点:在使用del关键字或pop()方法删除列表中指定索引的元素时,注意索引的范围是0至列表长度减1,使用索引值超出索引范围时,程序会报“IndexError:listindexoutofrange”索引越界错误。使用remove()方法根据值删除列表中第一个出现该数据值的元素时,如果参数值在列表中不存在,程序会报“ValueError:list.remove(x):xnotinlist”错误。嵌套列表中的外部列表和内部列表都有自己的索引,因此需要通过两个索引来访问内部列表的元素。切片操作在嵌套列表上同样适用,但要注意切片是外部列表还是内部列表的。对于大型嵌套列表,某些操作(如搜索、排序或遍历)可能会变得非常慢。任务提出01任务分析02知识准备03任务3中文数字转换任务实现04任务总结05任务提出Part.01提出任务编写程序,按照中文数字对照表,将输入的阿拉伯数字转换成大写中文数字。比如:阿拉伯数字的“1到0”转换成中文大写的“壹到零”,效果如图所示。任务分析Part.02任务分析1.创建Python程序ChineseNumber.py。2.创建元组按组存储中文大写数字。3.通过函数提示并接收用户输入的数字。4.通过循环遍历,找到每位阿拉伯数字在元组中对应的中文大写数字。5.将阿拉伯数字转成中文大写数字,拼接到最终结果中。6.测试运行程序ChineseNumber.py,并通过输出结果检验程序。本任务主要实现的是阿拉伯数字到中文大写数字转换,中文大写数字是固定的十个数字,可以使用元组来按顺序存放中文大写数字,然后根据需要从元组中提取,具体的任务实施分析如下:知识准备Part.03元组的创建与访问01知识准备创建元组01访问元组元素025.7元组的创建与访问在Python中,元组是一个不可变序列类型,通常用于存储一组相关的值。元组中的元素可以是任何数据类型,并且元组一旦创建就不能被修改(即不能添加、删除或更改元素)。元组的多个元素之间使用逗号分隔。元组的创建与访问元组有两种常用的创建方式:圆括号()和函数tuple(),如表所示。创建元组创建元组方式语法格式说明圆括号()创建不包含元素的空元组元素1,(元素1,)创建包含一个元素的元组,圆括号可以省略,逗号不能省略元素1,元素2,……(元素1,元素2,……)创建包含多个元素的元组,圆括号可以省略,逗号不能省略tuple()函数tuple()不传参数,创建空元组tuple(iterable)参数iterable是一个可以迭代的类型,比如字符串、列表等使用圆括号方式创建元组,示例代码如下:创建元组程序运行结果从上述代码中可以看出,在使用圆括号创建一个元素的元组时,如果省略掉逗号,则会生成一个字符串类型的数据。使用tuple()函数创建元组,示例代码如下:创建元组程序运行结果在使用函数tuple()创建元组时,如果不传入参数,创建的是空元组;当传入字符串、列表等可以迭代的类型的参数时,可以将其他类型的序列元素转成元组的元素。访问元组的元素有以下几种方式:使用索引方式访问元组元素;使用切片访问元组元素;通过while和for循环遍历访问元组元素。访问元组元素元组的访问方式与列表基本相同。但需要注意元组是一个不可变序列,即元组的元素不可修改,试图添加、修改和删除元组的元素都会报错。访问元组的元素,示例代码如下:访问元组元素程序运行结果任务实现Part.04分析代码01编写代码02任务实现分析代码根据前面的分析可知,首先创建元组num_tuple保存所有的中文大写数字,按照从零到玖的顺序,对应元素的索引0-9;再使用input()函数接收用户输入的阿拉伯数字串;接下来是数据处理,使用for循环获取每位数字字符,将其转换成整数,取出该整数索引位置对应的中文大写数字,最后将所有的中文大写数字连接起来,保存到字符串变量result中;最后输出转换后的中文大写数字。(1)启动PyCharm,新建Python项目Chapter05,新建P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论