1、第二章算法与程序实现 2.4.3 2.4.3 算法与程序实现的综合应用算法与程序实现的综合应用第一课时第一课时目目 录录CONTENTSCONTENTS01程序与算法02Python基本数据类型03Python语言的字典04实践活动05拓展探索程 序 与01算 法程 序 与 算 法程序程序=算法算法+数据结构数据结构 算法和程序都是指令的有限序列,但是程序是算法,而算法不一定是 程序。算法是程序的核心内容,一个需要实现特定功能的程序,实现它的算法可以有很多种,算法的优劣决定着程序的好坏。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。数
2、据 类02型数 据 类 型字03典字 典(一)创建字典(二)删除字典(三)遍历字典字 典 字典是 Python 提供的一种常用的数据类型。它用于存放具有映射映射关系的数据。比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。字 典 字典保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 所示:字典保存的关联数据(一)创建(一)创建字典字典创建
3、字典的语法如下:格式:字典名=键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,英语:93printprint(scores)dict2=(20,30):good,30:badprintpri
4、nt(dict2)(一)创建(一)创建字典字典删除字典有两种情况:删除字典中的一个元素、删除字典的所有元素。1、通过键删除字典中的元素:.pop()或 del()2、删除字典中的所有元素:.clear()或 del()(二)删除字典(二)删除字典删除字典举例:#使用del语句删除key-value对deldel scores语文deldel scores数学printprint(scores)#92:5.72 2、字典的操作、字典的操作删除字典删除字典一个Python字典可能包含数百万个键值对,那么如何查询和处理数据呢?(三)遍历字典(三)遍历字典语法如下:1、字典常用函数(三)遍历字典(三)
5、遍历字典(1)items()items()是可以使用字典的元素创建一个以(键,值)为一组的元组对象。例如:dict=name:致远,sex:男,age:20dict.items()Dict_items()(name,致远),(sex,男),(age,20)3 3、字典的操作、字典的操作遍历字典遍历字典(2)keys()keys()是字典常用的一种方法,它可以使用字典的键值创建一个的列表对象。例如:dict=name:致远,sex:男,age:20dict.keys()Dict_keys()name,sex,age3 3、字典的操作、字典的操作遍历字典遍历字典阅读程序,写出结果2、对于复杂的查询
6、,可使用for循环。遍历一个字典有如下4种方式:遍历字典的所有键。遍历字典的所有值。遍历字典的所有元素。遍历字典的所有键值对。3 3、字典的操作、字典的操作遍历字典遍历字典实 践 活04动实践活动实践活动 举重比赛按参赛运动员的体重不同来分级,比赛前运动员在饮食上更要控制,注意食物的卡路里,以确保每天摄入的热量控制在身体所需热量1500卡路里以内。请编写一个程序,输入食物及相应克数,能立即算出摄入的卡路里是多少,并判断是否超过所需热量。实践活动实践活动1、思路分析=键键 值值(卡路里/100克)-香蕉 90苹果 53牛奶 54酸奶 72燕麦片 338鸡蛋 114米饭 1162、算法描述第一步:
7、创建“食物热量对照表”对应的字典,明确键与值的映射。第二步:打印输出字典。第三步:利用循环,查询食物的热量,并计算总热量,直到输入q为止。第四步:输出摄入总热量。实践活动实践活动实践活动实践活动3、完成下列任务,补充程序代码fooddict=香蕉:90,苹果:53,完成字典的创建print(=)print(食物t热量(卡路里/100克)print(-)for k,v in fooddict.(请补充完整):print(k,t,v)#t 表示输出一个tab制表符print(=)totalcalorie=0#初始化总热量变量while(请补充完整):print(请输入你吃的食物名(输入q终止):,
8、end=)fname=input()if fname=q or fname=Q:#当输入q或Q时退出 break if fname not in(请补充完整)():print(没有此食物的数据,请输入数据库中食物名。)continue print(请输入食物重量(单位克):,end=)fweight=int(input()calorie=fweight/100.0*fooddictfname#计算热量 totalcalorie+=calorie#目前累计热量 print(摄入总热量为,totalcalorie,卡路里。,end=)MinCalorie=1500#最低热量if totalcalorie=MinCalorie:print(今天热量摄取不超标,恭喜!)else:print(今天热量摄取超标,totalcalorie-MinCalorie,卡路里,请注意控制!)实践活动实践活动4、调试程序拓 展 探05索 尝试用字典作为加密和解密工具。基于映射关系建立替换的规则,用字典做加密器,设计一个没有规律的字母映射关系。拓展探索拓展探索谢谢