当前位置:   article > 正文

实验2.5.2 Python 基础之字典_任务描述 python 的列表和字典可以存储任意类型的元素,所以我们可以将字典存储在

任务描述 python 的列表和字典可以存储任意类型的元素,所以我们可以将字典存储在

第1关:字典的使用:这份菜单可以修改

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。如果将列表看作有序对象的集合,那么可以将字典当作无序的集合。我们将以菜单的例子来说明字典使用的基本知识,餐馆的菜单上不仅包含菜名,菜名后面还必须包含该道菜的价格。如果要用列表实现,就需要两个列表,例如:

  1. list_menu = ['fish','pork','potato','noodles']
  2. list_price = [40,30,15,10]

给定一个菜名,要查找相应的价格,就先要在list_menu中找到相应的位置,再在list_price中找到相应的价格。这种方式效率低下,那么我们是否可以将菜名和价格都存储在一个可变容器中呢?答案是可以的。

在本关中,我们将学习和掌握能够将相关信息关联起来的 Python 字典的相关知识,并完成对包含菜名和价格的菜单的处理操作。

编程要求:

  • menu_dict字典中添加一道菜名lamb,它的价格是50

  • 获取menu_dict字典中的fish的价格并打印出来;

  • menu_dict字典中的fish的价格改为100

  • 删除menu_dict字典中noodles这道菜;

  • 输出新的menu_dict菜单。

  1. # 创建并初始化menu_dict字典
  2. menu_dict = {}
  3. while True:
  4. try:
  5. food = input()
  6. price = int(input())
  7. menu_dict[food]= price
  8. except:
  9. break
  10. # 请在此添加代码,实现对menu_dict的添加、查找、修改等操作,并打印输出相应的值
  11. ########## Begin ##########
  12. menu_dict['lamb']=50
  13. print(menu_dict['fish'])
  14. menu_dict['fish']=100
  15. del menu_dict['noodles']
  16. print(menu_dict)
  17. ########## End ##########

第2关:字典的遍历:菜名和价格的展示

Python 字典中包含大量数据,它和列表一样,支持遍历操作。Python有多种遍历字典的方式,可以遍历字典的所有键-值对、键或值。例如,餐馆的菜单包含了菜名和价格等信息,餐馆需要将菜名和价格都展示给顾客,但也有些时候只需要将菜名都展示给厨师,还有些时候只需要将价格展示给收银员,这三种情况就用到了字典不同的遍历方式。

本关的目标是让学习者掌握字典遍历的相关知识和用法,并基于这些知识实现对菜单不同的查找和展示处理。

对于餐馆中的厨师来说,他们并不想要知道菜的价格,只需要知道菜名然后将其做出来就行。所以对于厨师来说,我们需要遍历menu字典中的所有菜名。Python 为字典类型内置了keys()方法,该方法会将字典里的键遍历出来。

对于餐馆中的收银员来说,他们可能并不想知道菜单的菜名,只需要知道菜的价格,然后收账即可。所以对于收银员来说,我们需要遍历menu字典中的所有菜的价格。Python 为字典类型内置了values()方法,该方法会将字典里的值遍历出来。

编程要求

  • menu_dict菜单的键遍历输出;

  • menu_dict菜单的值遍历输出。

  1. # 创建并初始化menu_dict字典
  2. menu_dict = {}
  3. while True:
  4. try:
  5. food = input()
  6. price = int(input())
  7. menu_dict[food]= price
  8. except:
  9. break
  10. # 请在此添加代码,实现对menu_dict的遍历操作并打印输出键与值
  11. ########## Begin ##########
  12. for key in menu_dict.keys():
  13. print(key)
  14. for value in menu_dict.values():
  15. print(value)
  16. ########## End ##########

第3关:嵌套 - 菜单的信息量好大

Python 的列表和字典可以存储任意类型的元素,所以我们可以将字典存储在列表中,也可以将列表存储在字典中,这种操作称为嵌套。例如,餐馆中的菜单不仅仅包含菜名和价格,可能还会包含很多其他信息,这时候我们可能就需要采取嵌套的存储方式。

本关任务是让学习者利用嵌套方式存储菜单,让读者掌握 Python 嵌套的基本操作。

编程要求:

  • menu_total列表中初始时只包含menu1字典,menu1字典中包含两道菜和两道菜的价格;

  • 编程要求是向menu_total列表中添加另外一个菜单字典menu2menu2菜单中的菜名和menu1菜单一样,菜的价格是menu1菜的价格的2倍;

  • 输出新的menu_total列表。

  1. # 初始化menu1字典,输入两道菜的价格
  2. menu1 = {}
  3. menu1['fish']=int(input())
  4. menu1['pork']=int(input())
  5. menu2={}
  6. # menu_total列表现在只包含menu1字典
  7. menu_total = [menu1]+[menu2]
  8. # 请在此添加代码,实现编程要求
  9. ########## Begin ##########
  10. menu2['fish']=2*menu1['fish']
  11. menu2['pork']=2*menu1['pork']
  12. ########## End ##########
  13. # 输出menu_total列表
  14. print(menu_total)

第4关:字典遍历:菜价统计

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。如果将列表看作有序对象的集合,那么可以将字典当作无序的集合。我们将以菜单的例子来说明字典使用的基本知识 在本关中,我们将学习和掌握能够将相关信息关联起来的 Python 字典的相关知识,并完成对包含菜名和价格的菜单的处理操作。

统计给定菜单menu_dict,计算菜单中菜价的平均值并输出.

  1. # 创建并初始化menu_dict字典
  2. menu_dict = eval(input())
  3. a=[]
  4. # 请在此添加代码,实现对menu_dict平均菜价的计算,并打印输出
  5. ########## Begin ##########
  6. for v in menu_dict.values():
  7. a.append(v)
  8. b=sum(a)/len(a)
  9. print('平均菜价为:{:.2f}元'.format(b))
  10. ########## End ##########

第5关:数字统计

字典和列表一样,都是 Python 中十分重要的可迭代类型,都可以存储任意类型元素。本关中我们需要统计字符串中0-9每个数字出现的次数存储并存储在字典。

给定一个字符串s,统计0-9每个数字在字符串s中出现的次数存储在字典count,并输出字典。

  1. from math import *
  2. # 输入字符串
  3. s=input()
  4. # 创建并初始化字典
  5. count={}
  6. # 请在此添加代码,统计0-9每个数字在字符串中出现的次数存储在字典count,并输出字典
  7. ########## Begin ##########
  8. for i in range(0,10):
  9. i=str(i)
  10. a=0
  11. for j in s:
  12. if i==j:
  13. a=a+1
  14. i=int(i)
  15. count[i]=a
  16. print(count)
  17. ########## End ##########

第6关:列表嵌套字典:查找成绩

字典和列表可以相互嵌套。本关中我们通过列表嵌套字典来存储若干个同学的成绩,如下例所示。 [{'name':'张小明','score':95}, {'name':'李小红','score':85},{'name':'王小刚','score':75}] 列表的每一个元素都是字典类型,存储一位学生的姓名与成绩,本关任务是按指定姓名查找成绩,并统计平均、最高、最低成绩,输出上述信息。

编程要求

程序会输入一个查找姓名name,一个用字典嵌套列表scores存储学生的姓名和成绩,请查找姓名为name的同学的成绩,并统计显示平均成绩、最高最低成绩,按指定格式输出;如成绩表中没有该姓名,则输出‘没有该姓名’。

  1. # 输入查找姓名
  2. name=input()
  3. # 创建并初始化成绩字典列表
  4. scores=eval(input())
  5. a=[]
  6. # 请在此添加代码,查找姓名为name的同学的成绩,并统计显示平均成绩、最高最低成绩,按指定格式输出
  7. ########## Begin ##########
  8. x=str(scores)
  9. if name not in x:
  10. print('没有该姓名')
  11. else:
  12. for i in scores:
  13. if i['name']==name:
  14. print('姓名:{},成绩:{:.2f}'.format(i['name'],i['score']))
  15. a.append(i['score'])
  16. print('平均成绩:{:.2f},最高成绩:{:.2f},最低成绩:{:.2f}'.format(sum(a)/len(a),max(a),min(a)))
  17. ########## End ##########

求个三连吧。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/651418
推荐阅读
相关标签
  

闽ICP备14008679号