资源简介 2.4.3算法与程序实现的综合应用第一课时练习题一、判断1、操作系统是一个在无限循环中执行的程序,因而不是一个算法。2、为了保存具有映射关系的数据,Python提供了列表。3、算法+数据结构=算法4、一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。5、编写一个特定功能的程序,使用不同的算法可以让程序的体积、效率相差很多。所以算法是编程的精华所在。6、选出一个好的算法,再配合以一种适宜的数据结构,这样程序的效率会大大提高。7、Python语言的字典包含多个key-value对,而key是字典的关键数据,因此程序对字典的操作都是基于key的。8、Python语言的字典,key就相当于它的索引,只不过这些索引不一定是整数类型,字典的key可以是任意不可变类型。二、有如下python字典,按照要求实现每一个功能。dict={"k1":"v1","k2":"v2","k3":"v3"}1、请循环遍历出所有的key2、请循环遍历出所有的value3、请删除字典中键值对"k1":"v1",并输出删除后的结果4、请获取字典中"k2"对应的值答案:一、判断题YNNYYYYY二、操作题1、请循环遍历出所有的keydict={"k1":"v1","k2":"v2","k3":"v3"}forkindict:print(k)2、请循环遍历出所有的valuedict={"k1":"v1","k2":"v2","k3":"v3"}forkindict:print(dict[k])3、请删除字典中键值对"k1":"v1",并输出删除后的结果dict={"k1":"v1","k2":"v2","k3":"v3","k4":"v4"}print("dict删除k1前的值:",dict)dict.pop("k1")print("dict删除k1后的值:",dict)4、请获取字典中"k2"对应的值dict={"k1":"v1","k2":"v2","k3":"v3","k4":"v4"}print(dict["k2"])(共28张PPT)第二章算法与程序实现2.4.3算法与程序实现的综合应用第一课时目录CONTENTS01程序与算法02Python基本数据类型03Python语言的字典04实践活动05拓展探索程序与01算法程序与算法程序=算法+数据结构算法和程序都是指令的有限序列,但是程序是算法,而算法不一定是程序。算法是程序的核心内容,一个需要实现特定功能的程序,实现它的算法可以有很多种,算法的优劣决定着程序的好坏。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。数据类02型数据类型字03典字典(一)创建字典(二)删除字典(三)遍历字典字典字典是?Python?提供的一种常用的数据类型。它用于存放具有映射关系的数据。比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。字典字典保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过key来访问,被称为value。形象地看,字典中key和value的关联关系如图所示:字典保存的关联数据(一)创建字典创建字典的语法如下:格式:字典名={键1:值1,键2:值2,键3:值3,……)如:dict=(‘a’:1,‘b’:2,‘c’:3,‘d’:4)字典的特点:无序,键唯一。字符串和整数等都可以作为键。程序既可使用花括号语法来创建字典,也可使用dict()函数来创建字典。实际上,dict是一种类型,它就是Python中的字典类型。在使用花括号语法创建字典时,花括号中应包含多个key-value对,1、键与值用冒号“:”分开;2、项与项用逗号“,”分开;创建字典举例:?scores={'语文':89,'数学':92,'英语':93}print(scores)dict2={(20,30):'good',30:'bad'}print(dict2)(一)创建字典删除字典有两种情况:删除字典中的一个元素、删除字典的所有元素。1、通过键删除字典中的元素:?<字典>.pop(<键>)或?del(<字典>[<键>])2、删除字典中的所有元素:?<字典>.clear()或?del(<字典>)(二)删除字典删除字典举例:#使用del语句删除key-value对delscores['语文']delscores['数学']print(scores)#{92:5.7}2、字典的操作——删除字典一个Python字典可能包含数百万个键值对,那么如何查询和处理数据呢?(三)遍历字典语法如下:?<字典>[<键>]1、字典常用函数(三)遍历字典(1)items()items()是可以使用字典的元素创建一个以(键,值)为一组的元组对象。例如:>>>dict={’name’:’致远’,’sex’:’男’,’age’:’20’}>>>dict.items()Dict_items(){[(’name’,’致远’),(’sex’,’男’),(’age’,’20’)]}3、字典的操作——遍历字典(2)keys()keys()是字典常用的一种方法,它可以使用字典的键值创建一个的列表对象。例如:>>>dict={’name’:’致远’,‘sex’:’男’,’age’:’20’}>>>dict.keys()Dict_keys(){[’name’,’sex’,’age’]}3、字典的操作——遍历字典阅读程序,写出结果2、对于复杂的查询,可使用for循环。遍历一个字典有如下4种方式:遍历字典的所有键。遍历字典的所有值。遍历字典的所有元素。遍历字典的所有键值对。3、字典的操作——遍历字典实践活04动实践活动举重比赛按参赛运动员的体重不同来分级,比赛前运动员在饮食上更要控制,注意食物的卡路里,以确保每天摄入的热量控制在身体所需热量1500卡路里以内。请编写一个程序,输入食物及相应克数,能立即算出摄入的卡路里是多少,并判断是否超过所需热量。实践活动1、思路分析==============================键值(卡路里/100克)------------------------------香蕉90苹果53牛奶54酸奶72燕麦片338鸡蛋114米饭1162、算法描述第一步:创建“食物热量对照表”对应的字典,明确键与值的映射。第二步:打印输出字典。第三步:利用循环,查询食物的热量,并计算总热量,直到输入q为止。第四步:输出摄入总热量。实践活动实践活动3、完成下列任务,补充程序代码fooddict={‘香蕉’:90,‘苹果’:53,完成字典的创建}print('==============================')print('食物\t热量(卡路里/100克)')print('------------------------------')fork,vinfooddict.(请补充完整):print(k,'\t',v)#\t表示输出一个tab制表符print('==============================')totalcalorie=0#初始化总热量变量while(请补充完整):print('请输入你吃的食物名(输入q终止):',end='')fname=input()iffname=='q'orfname=='Q':#当输入q或Q时退出breakiffnamenotin(请补充完整)():print('没有此食物的数据,请输入数据库中食物名。')continueprint('请输入食物重量(单位克):',end='')fweight=int(input())calorie=fweight/100.0fooddict[fname]#计算热量totalcalorie+=calorie#目前累计热量print('摄入总热量为',totalcalorie,'卡路里。',end='')MinCalorie=1500#最低热量iftotalcalorie<=MinCalorie:print('今天热量摄取不超标,恭喜!')else:print('今天热量摄取超标',totalcalorie-MinCalorie,'卡路里,请注意控制!')实践活动4、调试程序拓展探05索尝试用字典作为加密和解密工具。基于映射关系建立替换的规则,用字典做加密器,设计一个没有规律的字母映射关系。拓展探索谢谢教学设计课例名称2.4.3算法与程序实现的综合应用(第一课时)学段学科高一信息技术教材版本人教中图版章节必修1第二章第四节授课学校核心素养目标根据具体需要,应用不同的算法,编写程序实现相应的问题求解。借助给定的资源进行对比,完成相应问题分析。有意识地迁移,应用所学方法解决类似问题,强化主动应用算法知识解决问题的意识。3、分析程序实现的关键技术,加深学生对数字化工具背后的技术思想和方法的感悟。教学重难点1、教学重点:词频统计的算法设计与程序实现。亲历阅读与分析程序,体会程序中每一语句、函数的含义。2、教学难点:结合具体问题进行算法优化,并总结此类问题的解决方法,迁移到类似问题中。教材分析本节内容是算法与程序实现的综合应用,教材案例中引用一个重要的技术支撑:字典。本节多了一些全新概念和功能实现,在教学中需要不拘泥于教科书中提供的资源,拓展更多的内容。本节内容较多,分为两课时讲解,第一课时主要学习字典的相关知识,第二节课主要是经历具体问题的解决过程,进行算法与程序实现的综合应用,由浅入深,自顶而下,逐步求精地学习。教学策略本节强调学生通过感悟迁移和操作来体验算法与程序的综合应用,通过案例的举证和类比总结相关问题的解决方法。突出学生主体,让学生亲历问题解决的全过程,通过师生交流、生生交流、逐步理解和内化算法思想,鼓励学生对运行结果进行分析,思考问题产生的原因,进一步优化。2.4.3算法与程序实现的综合应用一、问题引入思考:算法与程序的关系?设计意图:对前面所学知识进行梳理。小组合作讨论算法与程序之间的关系,归纳算法与程序设计应用的一般规律,总结算法与程序设计在解决问题中的地位与作用。二、Python基本数据类型设计意图:温故知新,通过导图重温前面所学相关数据类型,并了解未知,引出本节课重要内容:字典。三、Python字典字典是Python提供的一种常用的数据类型。它用于存放具有映射关系的数据。字典保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过key来访问,被称为value。设计意图:掌握核心概念和技术工具,这是本课的重点。通过观察思考接受新知,并在完成任务中把所学知识整理得更加条理化,从中发展思维。任务1:请同学举例说明映射关系。(一)创建字典创建字典的语法如下:格式:字典名={键1:值1,键2:值2,键3:值3,……)说明:程序既可使用花括号语法来创建字典,也可使用dict()函数来创建字典。实际上,dict是一种类型,它就是Python中的字典类型。在使用花括号语法创建字典时,花括号中应包含多个key-value对,1、键与值用冒号“:”分开;2、项与项用逗号“,”分开。例1:scores={'语文':89,'数学':92,'英语':93}print(scores)例2:dict2={(20,30):'good',30:'bad'}print(dict2)(二)删除字典删除字典有两种情况:其一是删除字典中的一个元素,其二是删除字典的所有元素。1、通过键删除字典中的元素:<字典>.pop(<键>)或?del(<字典>[<键>])2、删除字典中的所有元素:?<字典>.clear()或?del(<字典>)任务2:说出下列程序输出结果。#使用del语句删除key-value对delscores['语文']delscores['数学']print(scores)#{92:5.7}(三)遍历字典一个Python字典可能包含数百万个键值对,那么如何查询和处理数据呢?语法如下:<字典>[<键>]1、字典常用函数(1)items()可以使用字典的元素创建一个以(键,值)为一组的元组对象。例如:>>>dict={’name’:’致远’,’sex’:’男’,’age’:’20’}>>>dict.items()Dict_items(){[(’name’,’致远’),(’sex’,’男’),(’age’,’20’)]}(2)keys()可以使用字典的键值创建一个的列表对象。例如:>>>dict={’name’:’致远’,‘sex’:’男’,’age’:’20’}>>>dict.keys()Dict_keys(){[’name’,’sex’,’age’]}任务3:阅读程序,写出结果2、对于复杂的查询,可使用for循环。遍历一个字典有如下4种方式:遍历字典的所有键。遍历字典的所有值。遍历字典的所有元素。遍历字典的所有键值对。四、实践活动举重比赛按参赛运动员的体重不同来分级,要比赛时运动员在饮食上都要控制,注意食物的卡路里,以确保每天摄入的热量控制在身体所需热量1500卡路里以内。请编写一个程序,输入食物及相应克数,能立即算出摄入的卡路里是多少,并判断是否超过所需热量。设计意图:让学生在解决问题中发挥主体作用,学以至用,提高综合素质。1、思路分析2、算法描述第一步:创建“食物热量对照表”对应的字典,明确键与值的映射。第二步:打印输出字典。第三步:利用while循环,查询食物的热量,并计算总热量,直到输入q为止。第四步:输出摄入总热量。3、完成下列任务,补充程序代码fooddict={‘香蕉’:90,‘苹果’:53,完成字典的创建}print('==============================')print('食物\t热量(卡路里/100克)')print('------------------------------')fork,vinfooddict.(请补充完整):print(k,'\t',v)#\t表示输出一个tab制表符print('==============================')totalcalorie=0#初始化总热量变量while(请补充完整):print('请输入你吃的食物名(输入q终止):',end='')fname=input()iffname=='q'orfname=='Q':#当输入q或Q时退出breakiffnamenotin(请补充完整)():print('没有此食物的数据,请输入数据库中食物名。')continueprint('请输入食物重量(单位克):',end='')fweight=int(input())calorie=fweight/100.0fooddict[fname]#计算热量totalcalorie+=calorie#目前累计热量print('摄入总热量为',totalcalorie,'卡路里。',end='')MinCalorie=1500#最低热量iftotalcalorie<=MinCalorie:print('今天热量摄取不超标,恭喜!')else:print('今天热量摄取超标',totalcalorie-MinCalorie,'卡路里,请注意控制!')4、调试程序五、深入探究尝试用字典作为加密和解密工具。基于映射关系建立替换的规则,用字典做加密器,设计一个没有规律的字母映射关系。 展开更多...... 收起↑ 资源列表 2.4.3算法与程序实现的综合应用(第一课时)-【新教材】人教中图版(2019)高中信息技术必修一教案.docx 2.4.3算法与程序实现的综合应用(第一课时)-【新教材】人教中图版(2019)高中信息技术必修一练习.docx 2.4.3算法与程序实现的综合应用(第一课时)-【新教材】人教中图版(2019)高中信息技术必修一课件28.pptx