Python程序设计-教案-单元四 列表、元组、字典和集合_第1页
Python程序设计-教案-单元四 列表、元组、字典和集合_第2页
Python程序设计-教案-单元四 列表、元组、字典和集合_第3页
Python程序设计-教案-单元四 列表、元组、字典和集合_第4页
Python程序设计-教案-单元四 列表、元组、字典和集合_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

《Python程序设计》教案单元四列表、元组、字典和集合

教学内容邀请同学共建项目教学目标素质目标:增强学生解决问题、根据实际情况选择适合的方法的能力。知识目标:掌握什么是列表以及列表的常见操作。掌握列表的嵌套使用及循环遍历。能力目标:能够定义列表并正确使用相关方法,实现邀请同学共建项目功能。能举一反三,选择恰当的数据容器编程解决实际问题。教学重难点教学重点:Python中列表的相关语法。教学难点:Python中列表的应用。教学方法案例分析法、问答法、讨论法、讲授法、实训法教学用具电脑、投影仪、多媒体课件、教材教学设计教学过程主要教学内容及步骤设计意图课前任务【教师】布置课前任务,提醒同学通过学习软件,完成课前任务请大家预习本任务需要的相关知识点。【学生】完成课前任务通过课前任务,使学生了解本次课的重要性,增加学生的学习兴趣考勤

(2min)【教师】清点上课人数,记录好考勤【学生】班干部交假条培养学生的组织纪律性,掌握学生的出勤情况新课预热

(10min)【教师】与学生简单互动,复习回顾上次课的内容等【学生】聆听、互动【教师】概括项目总体需要学习内容列表(list)是包含零个或多个元素的有序序列。列表的长度和内容都是可变的,用户可自由对列表中的元素进行添加、删除或修改等操作。列表没有长度限制,元素类型也可以不同,可以同时包含数字、字符串等基本类型,和列表、元组、字典、集合及其他自定义数据类型的对象,使用非常灵活。通过老师与学生的互动,并让学生了解这次课的知识点大致要求问题导入(5min)【教师】提出以下问题:我们都学过了C语言,请大家思考一下,C语言如何生成随机数?【学生】思考、举手回答【教师】通过学生的回答引入要讲的知识通过问题导入的方法,引导学生主动思考,激发学生的学习兴趣传授新知

(30min)一、列表的创建和访问【教师】讲解Python中的列表的创建和访问创建列表只需将逗号分隔的不同元素使用方括号括起来即可。例如:animal=['elephant','monkey','snake','tiger']#创建列表animalnumber=[1,2,3,4,5] #创建列表number与字符串一样,可以通过下标索引的方式来访问列表中的元素。列表的正索引也是从0开始的,同样也可以是负索引。例如,使用animal[0]访问上述列表animal中索引为0的元素,取值为“elephant”。【教师】强调以下问题(1)与整数和字符串不同,列表要处理一组数据,因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象,只会对原有列表生成一个新的引用。(2)还可以使用list()函数将字符串、range对象、元组等转换为列表。其语法格式为“list(obj)”,其中obj为需要转换的对象。例如:list('helloworld') #将字符串转换为列表,结果为['h','e','l','l','o','','w','o','r','l','d']list(range(1,10,2)) #将range对象转换为列表,结果为[1,3,5,7,9]【学生】聆听、记录、理解【教师】演示例4-1至例4-3程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解【教师】布置题目(1)以下程序的输出结果是()。str=[['a','b'],[1,2],'Python',['一','二','三','四']]print(str[2][2])A.2 B.t C.Python D.三【学生】完成题目【教师】随机点名回答二、列表的基本操作【教师】讲解Python中的列表的基本操作由于列表属于序列类型,所以它也支持通用序列的所有操作。除了这些操作,Python还提供了大量方法用于列表元素的添加、删除和排序等。1、添加元素列表可使用append()、extend()或insert()方法来添加元素。(1)append()方法:在列表末尾添加新的元素,其语法格式如下。list.append(obj)其中,list表示列表,obj表示添加到列表末尾的对象。例如:number=[0,1,2,3] #创建列表number并赋值number.append(4) #使用append()方法给number末尾添加元素4print(number) #输出number,结果为[0,1,2,3,4](2)extend()方法:在列表末尾一次性添加另一个序列中的多个值(用新列表扩展原来的列表),其语法格式如下。list.extend(seq)其中,list表示列表,seq表示添加到列表末尾的序列。【教师】布置题目(1)以下程序的输出结果是()。Is=["I","you","he"]Is.append("she")print(Is)A.['she','I','you','he'] B.['I','she','you','he']C.['I','you','she','he'] D.['I','you','he','she'](2)以下程序的输出结果是_______。x=[1,2,3]y=x[:]y.append(4)print(x,y)【学生】完成题目【教师】随机点名回答(3)insert()方法:将指定对象插入到列表的指定位置,其语法格式如下。list.insert(index,obj)其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的对象。例如:number=[1,2,4,5] #创建列表number并赋值number.insert(2,3)#使用insert()方法将元素3添加到列表索引为2的位置print(number) #输出number,结果为[1,2,3,4,5]2、删除元素在列表中,删除元素的常用方法有3种,分别是del命令、pop()方法和remove()方法。(1)del命令:根据索引删除列表中的元素。例如:number=[1,2,3,4,5] #创建列表number并赋值delnumber[2] #使用del命令删除number中索引为2的元素print(number) #输出number,结果为[1,2,4,5]del命令还可以使用分片的方式删除列表中的元素。例如:number=[1,2,3,4,5]#创建列表number并赋值delnumber[1:3]#使用del命令删除索引从1到3(不含)的元素print(number) #输出number,结果为[1,4,5](2)pop()方法:根据索引删除列表中的元素,并返回该元素的值,其语法格式如下。list.pop([index])其中,list表示列表,index表示删除列表元素的索引值,为可选参数,缺省时为−1,删除列表中的最后一个元素。例如:number=[1,2,3,4,5] #创建列表number并赋值number.pop() #使用pop()方法删除number中的元素,返回值为5print(number) #输出number,结果为[1,2,3,4]number.pop(0)#使用pop()方法删除number中索引为0的元素,返回值为1print(number) #输出number,结果为[2,3,4](3)remove()方法:删除列表中某个值的第一个匹配项,其语法格式如下。list.remove(obj)其中,list表示列表,obj表示列表中要删除的对象。【教师】布置题目(1)以下程序的输出结果是()。Lis=["football","basketball","piano","ping-pang","teninis"]Lis.pop(2)print(Lis)A.["football","piano","ping-pang","teninis"] B.["football","basketball","ping-pang","teninis"] C.["football","basketball","piano","teninis"] D.["basketball","piano","ping-pang","teninis"](2)以下程序的输出结果是______。x=[1,2,3,4,5]print(x.pop())(3)以下程序的输出结果是______。Lis=['A','B','C','D','a','b','c','d']foriinLis:ifi=='D':Lis.remove(i)print(Lis)【学生】完成题目【教师】随机点名回答【教师】强调以下问题remove()方法只能删除列表中第一个匹配的元素,如果要删除所有匹配的元素,就需要搭配循环语句实现。【学生】聆听、记录、理解3、切片与使用索引来访问单个元素类似,使用切片操作可以访问一定范围内的元素,即可以通过指定范围索引对列表进行分片取值。一般来说,切片操作需要提供两个索引作为边界,第一个索引是包含在切片内的,而第二个不包含在切片内。切片是提取序列的一部分,所以切片的结果仍然是一个序列。在形式上,切片使用2个冒号分隔的3个数字来完成,语法格式如下所示。[start:end:step]其中,第一个数字start表示切片开始位置,默认为0;第二个数字end表示切片截止(不包含)位置(默认为列表长度);第三个数字step表示切片的步长(默认为1)。当start为0时可以省略,当end为列表长度时可以省略,当step为1时可以省略,省略步长时还可以同时省略最后一个冒号。当step为负整数时,表示反向切片,这时start应该在end的右侧。【教师】演示例4-4程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解三、列表的遍历【教师】讲解Python中的列表的遍历为了能更有效地逐一输出列表中的元素,可以使用while或for循环来遍历列表。1、使用for循环遍历列表使用for循环遍历列表,只需将要遍历的列表作为for循环表达式中的序列即可。【教师】演示例4-6程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解2、使用while循环遍历列表使用while循环遍历列表,首先须获取列表的长度,将其作为while循环的判断条件。【教师】演示例4-7程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解【教师】布置题目(1)以下程序的输出结果是_________。forxin[0,1,2,3,4]:ifx>=3:breakprint(x,end='')(2)以下程序的输出结果是_________。a=[1,2,3,4,5,6,7,8,9]s=0forcina:s+=cprint(s)【学生】完成题目【教师】随机点名回答通过教师的讲解和演示,使学生了解Python中的列表的使用任务实施(15min)【教师】带领学生完成任务一✈【教师】提出任务“单丝不成线,独木不成林”,团队的力量是巨大的,团队合作可以完成个人无法独立承担的大项目。通常一个项目的成功实施需要多位成员进行团队合作共同完成。如果你是项目发起人,你会邀请谁?在项目组建实施过程中,有些受邀人由于各种原因可能无法参加,也可能出现项目功能增多或者资金不足等情况,导致受邀人员变化,这就需要团队调整邀请名单。本任务将带领大家编写Python程序,利用列表实现具有修改邀请人员、发出邀请等功能的邀请同学共建项目程序。【学生】思考、讨论一、进行任务分析:完成本任务须进行以下步骤。步骤一:邀请。如果你想要邀请任何同学共同完成一个项目,你会邀请谁?这里需要创建一个列表guests,存储3位受邀人名字;然后使用这个列表打印出邀请消息。步骤二:修改。当受邀人无法参与项目时,需要另外邀请一位同学。以“步骤一”编写的程序为基础,在程序末尾添加一条输出语句,说明哪位同学无法参与。修改邀请名单,用新邀请者的姓名代替无法参加者的姓名,并再次打印邀请消息,向名单中的同学发出邀请。步骤三:添加。由于项目功能增多,可以邀请更多的同学参与。请想想你还可以邀请哪三位同学。以上述步骤为基础,在程序末尾添加一条输出语句,指出项目需要更多的同学。使用insert()函数分别将三位嘉宾添加到名单开头、中间和末尾。最后再次打印邀请消息,向名单中的同学发出邀请。步骤四:缩减。你刚得知项目因为资金不足需要缩小团队规模,因此只能邀请两位同学。以上述步骤编写的程序为基础,在程序末尾添加一条输出语句,说明你只能邀请两位同学的消息。使用pop()函数不断删除名单中的同学,直到只有两位同学为止。每次从名单中弹出一位同学时,打印一条消息,让该同学知悉你很抱歉。对于余下的两位同学中的每一位,都打印一条消息,指出他依然在受邀人之列。最后使用del()函数将名单中的两位同学删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。。二、参考代码:guests=["XiaoMing","XiaoWang","XiaoLi","XiaoZhang"]forguestinguests:print(guest+",我可以邀请你一起完成项目吗?")print(guests[2]+"不能一起完成项目!"+"\n")guests[2]='Jack'forguestinguests:print(guest+",我可以邀请你一起完成项目吗?")print("我们的项目需要更多的人!"+"\n")guests.insert(0,'ZhangSan')guests.insert(3,'LiSi')guests.append('WangWu')forguestinguests:print(guest+",我可以邀请你一起完成项目吗?")print("sorry,我只能邀请两位同学完成项目!"+"\n")whilelen(guests)>2:honored=guests.pop()print(honored+",很抱歉,我们不能一起完成项目!")print("------------")forguestinguests:print(guest+",我仍然希望你能和我一起完成项目!")delguests[0]delguests[0]print(guests)代码运行四、代码分析(主要代码)【学生】聆听、记录、理解通过任务实施环节,让学生将所学知识与实践相结合,培养学生的实操能力实操练习(15min)【教师】布置任务【教师】巡堂辅导,及时解决学生遇到的问题;安排每组做得最快、最好的学生辅导其他学生进行操作,并解答其遇到的问题【学生】对比自己的绘制结果,若绘制有误,查找并记录原因通过实操练习使学生巩固所学知识,并以学生为主体,针对学生接受能力的差异性,让优秀学生带动其他学生掌握知识课堂小结

(3min)【教师】简要总结本节课的要点利用所学列表知识实现具有修改邀请人员、发出邀请等功能的邀请同学共建项目程序。【学生】总结回顾知识点总结知识点,巩固学生对Python中的列表相关知识的印象作业布置

(2min)【教师】布置课后作业利用本节课所学知识点实现具有修改邀请人员、发出邀请等功能的邀请同学共建项目程序,并检查运行结果是否正确。【学生】完成课后任务通过课后作业复习巩固学到的知识,提高实际操作能力教学反思本次课讲授的主要是Python中的列表知识点,通过知识点的学习和实践,让学生对Python数据容器有了更深入的了解,进一步提高了对Python知识的掌握程度,学生对本次课的学习兴趣也很高,取得了不错的教学效果。但由于课下练习较少,编程不太熟练,以后要继续加强实操部分的练习。教学内容

输出键盘上的相邻字母教学目标素质目标:培养团队互助,合作共赢的精神。知识目标:掌握元组的使用方法。掌握元组的循环遍历。能力目标:能够定义元组实现键盘上相邻字母输出问题。能举一反三,选择恰当的数据容器编程解决实际问题。教学重难点教学重点:Python中元组的相关语法。教学难点:Python中元组的应用。教学方法案例分析法、问答法、讨论法、讲授法、实训法教学用具电脑、投影仪、多媒体课件、教材教学设计教学过程主要教学内容及步骤设计意图课前任务【教师】布置课前任务,提醒同学通过学习软件,完成课前任务请大家自行搜集资料了解元组,并且预习本任务需要的相关知识点。【学生】完成课前任务通过课前任务,使学生了解本次课的重要性,增加学生的学习兴趣考勤

(2min)【教师】清点上课人数,记录好考勤【学生】班干部交假条培养学生的组织纪律性,掌握学生的出勤情况新课预热

(10min)【教师】与学生简单互动,复习回顾上次课的内容等【学生】聆听、互动通过老师与学生的互动,并让学生了解这次课的知识点大致要求问题导入(5min)【教师】提出以下问题:大家在之前学过列表的概念,可以简述一下列表是什么?都有哪些特性?【学生】思考、举手回答【教师】通过学生的回答引入要讲的知识通过问题导入的方法,引导学生主动思考,激发学生的学习兴趣传授新知

(30min)元组【教师】讲解Python中的元组Python的元组(tuple)与列表类似,不同之处在于不能修改元组的元素,元组使用圆括号包含元素,而列表使用方括号包含元素。1、元组的创建和访问1)创建元组创建元组常用的方法是将逗号分隔的不同元素用圆括号括起来,也可省略圆括号,直接使用逗号分隔元素。例如:x=('a','b',1,2,3) #创建元组xprint(x) #输出x,结果为('a','b',1,2,3)y='a','b','c','d' #创建元组y时省略了圆括号print(y) #输出y,结果为('a','b','c','d')如果要定义一个空元组,可以使用没有元素的圆括号来表示。例如:x=() #创建空元组xprint(x) #输出x,结果为()【教师】强调以下问题Python在定义只有1个元素的元组时,在元素后面必须加一个逗号“,”。例如:x=(1,) #创建只有一个元素的元组xprint(x) #输出x,结果为(1,)这是因为圆括号既可以表示元组,又可以表示数学公式中的小括号,如果没有逗号将会产生歧义。例如,“x=(1)”中按小括号进行计算,因此计算结果为1,而不是元组。【教师】小拓展tuple()函数可将序列转换为元组,参数为序列。如果参数本身是元组,则原样返回该参数。例如:tuple([1,2,3]) #将列表转换为元组,结果为(1,2,3)tuple('abc') #将字符串转换为元组,结果为('a','b','c')tuple((1,2,3)) #参数为元组,结果为(1,2,3)【学生】聆听、记录、理解【教师】布置题目(1)以下程序的运行结果是_______。Language=("C","C++","C#","Java","Python")print(Language[1])【学生】完成题目【教师】随机点名回答2)访问元组与列表类似,可以使用下标索引来访问元组中的元素。例如:x=('a',1,3.14) #创建元组xprint(x[0]) #输出索引为0的元素,结果为“a”print(x[1]) #输出索引为1的元素,结果为1print(x[-1]) #输出索引为-1的元素,结果为3.14【学生】聆听、记录、理解【教师】布置题目(1)以下程序的运行结果是________。Language_1=("C","C++","C#")Language_2=("Java","Python")print(Language_1+Language_2)(2)以下程序的运行结果是________。str="Welcometobeijing"print(tuple(str))(3)以下程序的运行结果是_________。Is=(int('10'),"10",10,2*5)print(Is.index(10),Is.count(10))【学生】完成题目【教师】随机点名回答2、元组的合并和遍历由于元组是不可变序列,所以元组无法执行某些操作,如添加、修改和删除等。1)合并元组元组中的元素值是不允许修改的,但可以对元组进行连接组合。例如:x=(1,2,3) #创建元组xy=('a','b') #创建元组yz=x+y #将x和y进行连接组合后赋给zprint(z) #输出z,结果为(1,2,3,'a','b')【教师】小拓展zip()函数将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象。例如:list_str=['a','b','c','d'] #创建列表并赋值list_num=[1,2,3,4] #创建列表并赋值list_new=zip(list_str,list_num) #打包为元组组成的zip对象#用list()函数转换为列表输出,结果为[('a',1),('b',2),('c',3),('d',4)]print(list(list_new))【学生】聆听、记录、理解2)遍历元组与列表一样,也可以使用while和for循环来遍历元组中的所有元素。【教师】演示示例程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解【教师】布置题目(1)以下程序的运行结果是________。list=("苹果","梨","香蕉","李子","橙子","菠萝")forfruitinlist:print(fruit,end='')(2)以下程序的运行结果是________。foriin("Goaheadbravely"):ifi=="b":breakelse:print(i,end="")【学生】完成题目【教师】随机点名回答通过教师的讲解和演示,使学生了解Python中的元组的使用任务实施(15min)【教师】带领学生完成任务二✈【教师】提出任务知识是用来解决生活问题的工具,使用工具的使用才是解决实际问题的关键。键盘是常常用来输入字符和数字的工具,为了更好地了解并进行使用,键盘上的键位是我们必须要熟悉的。本任务将带领大家编写Python程序,利用元组保存键盘上的字母,根据输入计算机键盘上任意一个字母,输出键盘上的相邻字母。若这个字符左边或者右边没有字母时,输出'*'。【学生】思考、讨论一、进行任务分析:完成本任务需进行以下步骤。1.利用input()方法接收用户通过键盘输入的字母。2.定义元组,由于键盘上的字母排序固定,因此可以选择元组来保存数据。3.使用index()方法获取输入的字母在元组中首次出现的下标,进行定位输出,输出相邻的元素。二、参考代码:x=input("请输入计算机键盘上任意一个字母:")tp=tuple("*QWERTYUIOP*ASDFGHJKL*ZXCVBNM*")#定义元组,存储键盘上的字母n=tp.index(x)print("键盘上相邻的字母是:")print(tp[n-1],tp[n+1])三、代码运行四、代码分析(主要代码):【学生】聆听、记录、理解通过任务实施环节,让学生将所学知识与实践相结合,培养学生的实操能力实操练习(15min)【教师】布置任务【教师】巡堂辅导,及时解决学生遇到的问题;安排每组做得最快、最好的学生辅导其他学生进行操作,并解答其遇到的问题【学生】对比自己的绘制结果,若绘制有误,查找并记录原因通过实操练习使学生巩固所学知识,并以学生为主体,针对学生接受能力的差异性,让优秀学生带动其他学生掌握知识课堂小结

(3min)【教师】简要总结本节课的要点利用,利用元组保存键盘上的字母,根据输入,输出相应的结果,即键盘上相邻的字母。【学生】总结回顾知识点总结知识点,巩固学生对Python中的元组相关知识的印象作业布置

(2min)【教师】布置课后作业利用本节课所学知识点,用元组保存键盘上的字母,根据输入,输出相应的结果,即键盘上相邻的字母,并检查运行结果是否正确。【学生】完成课后任务通过课后作业复习巩固学到的知识,提高实际操作能力教学反思本次课讲授的主要是Python中的元组知识点,通过知识点的学习和实践,让学生对Python数据容器有了更深入的了解,进一步提高了对Python知识的掌握程度,学生对本次课的学习兴趣也很高,取得了不错的教学效果。但由于课下练习较少,编程不太熟练,以后要继续加强实操部分的练习。

教学内容设计商品仓库教学目标素质目标:养成温故知新的习惯。知识目标:掌握什么是字典以及字典的常见操作。能力目标:能够利用字典设计商品仓库,实现查找商品的功能。能举一反三,选择恰当的数据容器编程解决实际问题。教学重难点教学重点:Python中字典的相关语法;Python中字典的创建、访问、遍历和基本操作方法。教学难点:Python中字典的应用。教学方法案例分析法、问答法、讨论法、讲授法、实训法教学用具电脑、投影仪、多媒体课件、教材教学设计教学过程主要教学内容及步骤设计意图课前任务【教师】布置课前任务,提醒同学通过学习软件,完成课前任务请大家预习本任务需要的相关知识点。【学生】完成课前任务通过课前任务,使学生了解本次课的重要性,增加学生的学习兴趣考勤

(2min)【教师】清点上课人数,记录好考勤【学生】班干部交假条培养学生的组织纪律性,掌握学生的出勤情况新课预热

(10min)【教师】与学生简单互动,复习回顾上次课的内容等【学生】聆听、互动【教师】概括本次课总体学习内容,让学生大体了解本次课学习内容字典是Python中常用的一种数据存储结构,它由“键-值”对组成,表示一种映射关系,每个“键-值”对称为一个元素。其中,“键”可以是Python中任意不可变数据类型,如数字、字符串、元组等,但不能是列表、集合、字典等可变数据类型;“值”可以是任意数据类型。通过老师与学生的互动,并让学生了解这次课的知识点大致要求问题导入(5min)【教师】提出以下问题:大家有了解过Python中的字典吗?字典与之前C语言课中学的有什么不同?【学生】思考、举手回答【教师】通过学生的回答引入要讲的知识通过问题导入的方法,引导学生主动思考,激发学生的学习兴趣传授新知

(30min)一、字典的创建【教师】讲解Python中的字典的创建在Python中,字典定义的语法格式如下所示。字典对象=[键1:值1,键2:值2,…,键n:值n]字典对于值的类型,并没有过多的限制,但是键的类型必须是数字、字符串或元组等不可变类型。一个空字典可以用一对花括号"{}"表示,也可以用dict()函数创建。【学生】聆听、记录、理解【教师】强调以下问题字典中的“键”是唯一的,创建字典时若出现“键”相同的情况,则后定义的“键-值”对将覆盖先定义的“键-值”对。例如:x={'a':1,'b':2,'b':'3'} #直接赋值创建字典xprint(x) #输出字典x,结果为{'a':1,'b':'3'}【教师】演示例4-13,例4-14,例4-15程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解【教师】布置题目以下程序的运行结果是________。person={'身份证号':'110112XXXXXXXX0101','姓名':'王宏','性别':'男','居住地':'北京市XX区XX街道XX小区',}person['居住地']='北京市通州区' #修改居住地 person['电话'] #增加电话print(person)【学生】完成题目【教师】随机点名回答二、字典的访问【教师】讲解Python中的字典的访问1、根据键访问值字典中的“键”可作为下标访问对应的“值”,如果字典中不存在这个“键”则会抛出异常,其语法格式如下。dict[key]其中,dict表示字典名,key表示要查找的键。【学生】聆听、记录、理解2、使用get()方法访问值在访问字典时,若不确定字典中是否有某个键,可通过get()方法获取,若该键存在,则返回其对应的值,若不存在,则返回默认值,其语法格式如下。dict.get(key[,default=None])其中,dict表示字典名;key表示要查找的键;default表示默认值,如果指定键的值不存在,返回该默认值,当default缺省时,返回None。【教师】演示例4-17程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解三、字典的基本操作【教师】讲解Python中的字典的基本操作与列表相似,Python也提供了大量方法用于字典元素的修改、添加、删除、更新、复制等操作。1、修改和添加元素当以指定“键”为下标给字典元素赋值时,有下面两种含义。(1)若该“键”在字典中存在,则表示修改该“键”对应的值。(2)若该“键”不存在,则表示添加一个新的“键-值”对,即添加一个新元素到字典中。【学生】聆听、记录、理解2、删除元素要删除字典中的元素或整个字典,可以使用del命令、clear()方法、pop()方法或popitem()方法。(1)del命令:根据“键”删除字典中的元素,(2)clear()方法:删除字典中的所有元素,其语法格式如下。dict.clear()其中,dict表示字典名。该方法不包含任何参数,也没有返回值。(3)pop()方法:删除指定的“键-值”对,并返回该“键”的值,其语法格式如下。dict.pop(key[,default])其中,dict表示字典名;key表示删除的键;default是默认值,当字典中没有要删除的key时,该方法返回指定的默认值。(4)popitem()方法:随机删除并返回一个“键-值”对,其语法格式如下。dict.popitem()其中,dict表示字典名。该方法无参数,返回值为一个随机的“键-值”对。【学生】聆听、记录、理解【教师】布置题目以下程序的运行结果是_________。person={'身份证号':'110112XXXXXXXX0101','姓名':'王宏','性别':'男','居住地':'北京市XX区XX街道XX小区','电话':}delperson['电话'] #删除电话print(person)person.popitem() #随机删除元素print(person)【学生】完成题目【教师】随机点名回答3、更新字典update()方法用于将新字典的“键-值”对一次性全部添加到当前字典中,如果两个字典中存在相同的“键”,则以新字典中的“值”更新当前字典,其语法格式如下。dict.update(dict1)其中,dict表示当前字典,dict1表示新字典。4、复制字典复制字典可使用copy()方法,返回字典的浅复制,其语法格式如下。dict.copy()其中,dict表示需要复制的字典,该方法无参数,返回一个新字典。【教师】小拓展在Python中,可使用3种方法复制字典:直接赋值、浅复制和深复制。(1)直接赋值:复制对象的引用。(2)浅复制:使用copy()方法复制父对象及其子对象的引用。(3)深复制:使用deepcopy()方法完全复制父对象及其子对象,此方法包含在copy模块中。【教师】布置题目以下程序的运行结果是________。family_age={"grandmather":65,"grandfather":68,"mather":38,"father":38,"child":10}old=family_age["grandmather"]print("grandmotheris"+str(old)+".")【学生】完成题目【教师】随机点名回答四、字典的遍历【教师】讲解Python中字典的遍历当字典包含大量元素时,可使用遍历的方法对元素进行访问,遍历字典有以下3种方法。1、遍历字典中所有的“键-值”对使用item()方法可遍历字典中所有的“键-值”对,该方法以dict_items形式返回可遍历的“(键,值)”元组,其语法格式如下。dict.items()其中,dict表示字典。【学生】聆听、记录、理解2、遍历字典中所有的键当不需要使用字典中的值时,可使用keys()方法只遍历字典中的键,该方法以dict_keys形式返回字典中所有的键,其语法格式如下。dict.keys()其中,dict表示字典名。【学生】聆听、记录、理解3、遍历字典中所有的值当只需要使用字典中的值时,可使用values()方法,该方法以dict_values形式返回字典中所有的值,其语法格式如下。dict.values()其中,dict表示字典名。【教师】强调以下问题dict_items、dict_keys和dict_values是Python的内部数据类型,专用于表示字典的键值对、键和值,可使用list()函数将其转换为列表。【教师】演示例4-18至例4-21程序【学生】观察运行结果并讨论【教师】讲解程序(主要代码)【学生】聆听、记录、理解【教师】布置题目(1)以下程序的运行结果是_______。stu_class={'赵':'优','钱':'良','孙':'中','李':'及格'}forname,reportinstu_class.items():print(name,'的成绩是',report)(2)以下程序的运行结果是______。family_love={"grandmather":"dancing","grandfather":"computer","mather":"readingbook","father":"cooking","child":"playingpingpang"}formember,hobbyinfamily_love.items():print(member.title()+"."+hobby)【学生】完成题目【教师】随机点名回答通过教师的讲解和演示,使学生了解Python中的字典的使用任务实施(15min)【教师】带领学生完成任务三✈【教师】提出任务生活中,字典是一本特殊的书,它按字母顺序列出一种语言的单词,解释它们的意思,并提供关于一个单词的许多其他信息。类似的,在Python中,我们也可以使用字典通过“字”来查找其对应的“含义”。恰当利用计算机工具,可以帮助我们提高查找效率。例如在购物时,页面上会显示商品列表,根据用户输入的商品序号,页面上显示相应的商品名称。本任务将带领大家编写Python程序,利用字典设计“商品仓库”提高查找商品的效率,并在用户输入Q或q时,退出程序。一、进行任务分析:本任务中“商品仓库”的商品描述具有映射关系,因此可以使用字典数据容器来存储。完成本任务须执行以下步骤。1.定义字典变量goods保存商品编号和对应商品名。2.定义列表变量num用来保存查找到的商品名。3.利用while语句循环输出商品编号和商品名,并接收键盘输入值。4.利用isdigit()方法检测字符串是否只由数字组成。如果是,则进一步判断数字的合法性,若输入的数字在范围内,则输出相应的值,并将其添加到列表中,否则给出错误提醒;如果不是,判断输入是否为q或Q,进而输出列表值并判断是否退出程序;其他情况均提示输入格式有误。二、参考代码:goods={'1':'大米','2':'香油','3':'小米','4':'食盐','5':'味精'}num=[]whiletrue:fori,vingoods.items():print(i,v)a=input("输入你想要的产品[输入q则退出]:")ifa.isdigit():ifa>i:print("输入的内容有误,请重新输入!")else:print(goods[a])num.append(goods[a])elifa.upper()=="Q":print(num)exit("退出")else:print("输入的格式错误")三、代码运行四、代码分析(主要代码):【学生】聆听、记录、理解通过任务实施环节,让学生将所学知识与实践相结合,培养学生的实操能力实操练习(15min)【教师】布置任务编写程序(1)创建一个商品库存字典,字典记录3种商品的信息,商品编号为键,商品名称和库存量用列表形式表示,创建完成后输出每种商品的编号、名称和库存量信息。【教师】巡堂辅导,及时解决学生遇到的问题;安排每组做得最快、最好的学生辅导其他学生进行操作,并解答其遇到的问题【学生】对比自己的绘制结果,若绘制有误,查找并记录原因通过实操练习使学生巩固所学知识,并以学生为主体,针对学生接受能力的差异性,让优秀学生带动其他学生掌握知识课堂小结

(3min)【教师】简要总结本节课的要点利用所学字典知识设计“商品仓库”。【学生】总结回顾知识点总结知识点,巩固学生对Python中的字典相关知识的印象作业布置

(2min)【教师】布置课后作业利用本节课所学知识点自己设计“商品仓库”。【学生】完成课后任务通过课后作业复习巩固学到的知识,提高实际操作能力教学反思本次课讲授的主要是Python中的字典知识点,通过知识点的学习和实践,让学生对Python数据容器有了更深入的了解,进一步提高了对Python知识的掌握程度,学生对本次课的学习兴趣也很高,取得了不错的教学效果。但由于课下练习较少,编程不太熟练,以后要继续加强实操部分的练习。

教学内容实现问卷调查教学目标素质目标:贯彻互助共享的精神,感受编写程序实现与生活的联系,进一步体会编程服务于生活的好处。知识目标:掌握什么是集合以及集合的常见操作。能力目标:能够定义集合实现问卷调查活动程序。能举一反三,选择恰当的数据容器编程解决实际问题。教学重难点教学重点:Python中集合的相关语法。教学难点:Python中集合的应用。教学方法案例分析法、问答法、讨论法、讲授法、实训法教学用具电脑、投影仪、多媒体课件、教材教学设计教学过程主要教学内容及步骤设计意图课前任务【教师】布置课前任务,提醒同学通过学习软件,完成课前任务请大家自行搜集资料了解集合,并且预习本任务需要的相关知识点。【学生】完成课前任务通过课前任务,使学生了解本次课的重要性,增加学生的学习兴趣考勤

(2min)【教师】清点上课人数,记录好考勤【学生】班干部交假条培养学生的组织纪律性,掌握学生的出勤情况新课预热

(10min)【教师】与学生简单互动,复习回顾上次课的内容等【学生】聆听、互动通过老师与学生的互动,并让学生了解这次课的知识点大致要求问题导入(5min)【教师】提出以下问题:大家在数学课程中学过集合的概念,可以简述一下集合是什么?都有哪些特性?【学生】思考、举手回答【教师】通过学生的回答引入要讲的知识通过问题导入的方法,引导学生主动思考,激发学生的学习兴趣传授新知

(30min)集合【教师】讲解Python中的集合集合与其他数据类型最大的不同在于它不包含重复元素,即集合元素是独一无二的。因此,当需要对一维数据进行去重处理时,一般可通过集合来完成。1、集合的创建创建集合只需将逗号分隔的不同元素使用大括号括起来即可。例如:a={1,2,3,4} #创建集合并赋值print(a) #输出集合a,结果为{1,2,3,4}b={2,1,3,4,1,2} #创建集合并赋值print(b) #输出集合b,结果为{1,2,3,4}由上述代码可以看出,由于集合元素是无序的,所以集合的输出结果与定义顺序可能不一致。【教师】小拓展还可以使用set()函数将列表、元组等其他类型的数据转换为集合,如果原来的数据中存在重复元素,则在转换为集合时会自动去重。例如:x=set('runoob') #将字符串转换为集合print(x) #输出集合x,结果为{'o','u','n','b','r'}y=set(['g','o','o','g','l','e']) #将列表转换为集合print(y) #输出集合y,结果为{'g','o','e','l'}z=set() #空集合print(z) #输出集合z,结果为set()【学生】聆听、记录、理解【教师】布置题目(1)以下程序用于实现,输入一个水果名,判断该水果是否在水果的集合中,若没有将它添加到水果集合中,并输出该集合,请填空使程序完整。fruits={"苹果","梨","香蕉","李子","橙子","菠萝"}fruit_1=input("请输入水果名:")_________________________print(fruits)【学生】完成题目【教师】随机点名回答2、集合的基本操作1)添加和删除元素与字典类似,Python也提供了多种函数和方法用于集合元素的

温馨提示

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

评论

0/150

提交评论