1.莫尔斯电码是一种早期的数字化通信形式,它通过“·”和“-”的不同排列顺序来表示不同的英文字母、数字以及标点符号。试编写程序,使用字典存放下表的内容,将用户输入的字符串(假设只包含英文字母)以莫尔斯电码的形式输出。

dic_morse={"A":"•−","B":"−•••","C":"−•−•","D":"−••","E":"•","F":"••−•","G":"−−•","H":"••••","I":"••","J":"•−−−","K":"−•−","L":"•−••","M":"−−","N":"−•","O":"−−−","P":"•−−•","Q":"−−•−","R":"•−•","S":"•••","T":"−","U":"••−","V":"•••−","W":"•−−","X":"−••−","Y":"−•−−","Z":"−−••"}
s=input("请输入字符串(只包含字母):").upper()
morse_code=""
for c in s:morse_code+=dic_morse[c]
print(morse_code)

#输出样例

请输入字符串(只包含字母):abcd
•−−•••−•−•−••

2.编写程序,实现以下功能:
(1)创建空字典dic_student。
(2)由用户依次输入五名学生的姓名和年龄,存入字典dic_student。
(3)输出字典dic_student中的内容,格式为:
王建 18
张云 19
张秋雨 18
刘欢 17
姜宇 19

dic_student={}
for i in range(1,6):name=input("请输入第"+str(i)+"个学生的姓名:")age=input("请输入第"+str(i)+"个学生的年龄:")dic_student[name]=age
for k,v in dic_student.items():print("{:<3}\t{}岁".format(k,v))

#输出结果

请输入第1个学生的姓名:王建
请输入第1个学生的年龄:18
请输入第2个学生的姓名:张云
请输入第2个学生的年龄:19
请输入第3个学生的姓名:张秋雨
请输入第3个学生的年龄:18
请输入第4个学生的姓名:刘欢
请输入第4个学生的年龄:17
请输入第5个学生的姓名:姜宇
请输入第5个学生的年龄:19
王建 18岁
张云 19岁
张秋雨 18岁
刘欢 17岁
姜宇 19岁

3.以下是某电商卖家在售产品价目一览表。

表7-2

产品名称 价格/元
方糖 99
X1 499
魔盒 399

试编写程序,实现以下功能:
(1)使用字典myDict存放表7-2中的信息,产品名称作为键,价格作为值。
(2)输出所有在售产品的价目表。格式为
方糖…………99元
X1 …………499元
魔盒…………399元
曲奇…………299元
(3)输出所有产品的价格。
(4)输出价格最高的产品价格。

myDict={'方糖':99,'x1':499,'魔盒':399,'曲奇':299}
print('\t价目表')
for k,v in myDict.items():print(k+'\t…………\t'+str(v))
lst=[]
for v in myDict.values():lst.append(v)
print('所有产品的平均价为:{}'.format(sum(lst)/len(lst)))
newlst=[(v,k) for k,v in myDict.items()]
newlst.sort()
print('价格最高的产品是:{}'.format(newlst[-1][1]))

#输出结果

方糖 ………… 99
x1 ………… 499
魔盒 ………… 399
曲奇 ………… 299
所有产品的平均价为:324.0
价格最高的产品是:x1

4.编写程序,实现以下功能:
(1)创建空字典dic_student。
(2)由用户依次录入学生的姓名、年龄、升高和体重,存入字典dic_student,将姓名作为键,年龄、升高和体重作为值。
(3)输出字典dic_student的内容。

dic_student={}
for i in range(1,6):name=input("请输入第"+str(i)+"个学生的姓名:")age=input("请输入第"+str(i)+"个学生的年龄:")height=input("请输入第"+str(i)+"个学生的身高:")weight=input("请输入第"+str(i)+"个学生的体重:")dic_student[name]=[age,height,weight]
for k,v in dic_student.items():print("{:<3}\t{}岁\t{}cm\t{}kg".format(k,v[0],v[1],v[2]))

#输出结果

请输入第1个学生的姓名:王建
请输入第1个学生的年龄:18
请输入第1个学生的身高:172
请输入第1个学生的体重:80
请输入第2个学生的姓名:张云
请输入第2个学生的年龄:19
请输入第2个学生的身高:165
请输入第2个学生的体重:55
请输入第3个学生的姓名:张秋雨
请输入第3个学生的年龄:18
请输入第3个学生的身高:178
请输入第3个学生的体重:82
请输入第4个学生的姓名:刘欢
请输入第4个学生的年龄:17
请输入第4个学生的身高:169
请输入第4个学生的体重:75
请输入第5个学生的姓名:姜宇
请输入第5个学生的年龄:19
请输入第5个学生的身高:170
请输入第5个学生的体重:70
王建 18岁 172cm 80kg
张云 19岁 165cm 55kg
张秋雨 18岁 178cm 82kg
刘欢 17岁 169cm 75kg
姜宇 19岁 170cm 70kg

5.编写程序,实现以下功能:
(1)创建空字典dic_student。
(2)由用户依次录入学生的班级,姓名、年龄、升高和体重,存入字典dic_student,将姓名作为键,年龄、升高和体重作为值。
(3)输出字典dic_student的内容。

dic_student={}
for i in range(1,6):Class=input("请输入第"+str(i)+"个学生的班级:")name=input("请输入第"+str(i)+"个学生的姓名:")age=input("请输入第"+str(i)+"个学生的年龄:")height=input("请输入第"+str(i)+"个学生的身高:")weight=input("请输入第"+str(i)+"个学生的体重:")dic_student[(Class,name)]=[age,height,weight]
for k,v in dic_student.items():print("{:<3}\t{}\t{}岁\t{}cm\t{}kg".format(k[0],k[1],v[0],v[1],v[2]))

#输出结果

与4题同理自己依次输入五名同学的班级,姓名、年龄、升高和体重就可以了

6.假设字典变量dic_country存储了部分国家的国家名与首都名的对应关系,其中国家名为键,首都名为值。试编写程序,根据用户输入的国家名查询首都名,如果存在则输出查询结果,否则提示“未查询该国家名!”。假设对国家名进行查询不区分大小写。

dic_country={"China":"Beijing","America":"Washington","Norway":"Oslo","Japan":"Tokyo","Germany":"Berlin","Canada":"Ottawa","France":"Paris","Thailand":"Bangkok"}
country=input("请输入国家名:").lower().capitalize()
if country in dic_country:print("首都名:{}".format(dic_country[country]))
else:print("未查询到该国家名!")

#输出样例

请输入国家名:China
首都名:Beijing

7.试编写程序,实现以下功能:
(1)创建一个字典,存放所有已注册用户的用户名和密码,内容如表7-4所示。

表7-4

用户名 密码
John 123
Maryy 111
Tommy 123456

(2)提示用户输入用户名和密码。
(3)依次对用户名和密码进行判断,并给出相应的提示。
若用户名输入错误,则提示“用户名不正确!”
若密码输入错误,则提示“密码不正确!”
若用户名和密码均正确,则提示“登陆成功!”

myDict={"John":"123","Marry":"111","Tommy":"123456"}
username=input('请输入用户名:')
if username not in myDict:print('该用户不存在!')
else:password=input('请输入密码:')if password!=myDict[username]:print('密码不正确!')else:print('成功登录!')

#输出样例

请输入用户名:Tommy
请输入密码:123456
成功登录!

8.年底了,某公司要发年终奖。列表lst_staff中存放了所有员工的名单,内容为[“李梅”,“张富”,“付妍”,“赵诺”,“刘江”]。字典dic_award中存放了对公司有杰出贡献的员工名单及奖金金额,内容为{“张富”:10000,“赵诺”:15000}。试编写程序,输出每位员工应发年终奖金额。dic_award中未包含的员工年终奖金额为5000元/人。

lst_staff=["李梅","张富","付妍","赵诺","刘江"]
dic_award={"张富":10000,"赵诺":15000}
for x in lst_staff:if x in dic_award:print("{}年终奖:{}元".format(x,dic_award[x]))else:print("{}年终奖:{}元".format(x,5000))

#输出结果

李梅年终奖:5000元
张富年终奖:10000元
付妍年终奖:5000元
赵诺年终奖:15000元
刘江年终奖:5000元

9.假设列表lst_busstop=[“龙江新城市”,“阳光广场”,“汉江路”,“嫩江路”,“清凉山公园”,“拉萨路”,“五台山”,“莫愁路”],存放了某公交路线途径的公交站名。另有字典dic_estate={“龙江新城市”:[“白云园”,“腾飞园”],“阳光广场”:[“龙江小区”,“芳草园”],“汉江路”:[“金信花园”,“龙凤花园"],“嫩江路”:[“西城蓝湾”,“花开四季”]},存放了部分公交站附近的小区。试编写程序,根据用户输入的起点(小区名)和终点(小区名),查询公交路线。例如,起点为“白云园”,终点“龙凤花园”,则输出结果为“起始站:龙江新城市站,终点站:汉江路站,共2站”。若起点为“龙凤花园”,终点为“白云园”,则输出“您需要乘坐反方向路线”。

lst_busstop=["龙江新城市","阳光广场","汉江路","嫩江路","清凉山公园","拉萨路"," 五台山","莫愁路"]
dic_estate={"龙江新城市":["白云园","腾飞园"],"阳光广场":["龙江小区","芳草园"],"汉江路":["金信花园","龙凤花园"],"嫩江路":["西城蓝湾","花开四季"]}
start=input("请输入起点(小区名):")
end=input("请输入终点(小区名):")
for k,v in dic_estate.items():if start in v:startStop=kbreak
for k,v in dic_estate.items():if end in v:endStop=kbreak
startIndex=lst_busstop.index(startStop)
endIndex=lst_busstop.index(endStop)
if startIndex>endIndex:print("您需要乘坐反方线线路。")
else:print("起点站:{}站,终点站:{}站,共{}站。".format(startStop,endStop,endIndex-startIndex))

#输出样例

请输入起点(小区名):白云园
请输入终点(小区名):龙凤花园
起点站:龙江新城市站,终点站:汉江路站,共2站。

10.假设字典dic_city存放了每个人旅游过的城市,内容为{“张三凤”:[“北京”,“成都”],“李茉绸”:[“上海”,“广州”,“兰州”],“慕容海”:[“太原”,“西安”,“济南”,“上海”]}。试编写程序,实现以下功能。
(1)统计每个人旅游过的城市数目。
(2)统计去过上海的人数以及名单。

dic_city={"张三风":["北京","成都"],"李茉绸":[ "上海", "广州", "兰州"], "慕容福":[ "太原", "西安","济南","上海"]}
for k,v in dic_city.items():print("{}去过了{}个城市".format(k,len(v)))
name=[]
for k,v in dic_city.items():if "上海" in v:name.append(k)
print("去过上海的有{}人,他们是{}".format(len(name),"、".join(name)))

#输出结果

张三风去过了2个城市
李茉绸去过了3个城市
慕容福去过了4个城市
去过上海的有2人,他们是李茉绸、慕容福

11.假设已有字典变量dic_score存储了学生的成绩信息(见表7-5),姓名为键。试编写程序,统计每名学生的平均成绩,添加至字典,最后将字典输出。

表7-5

姓名 语文 数学 英语 计算机 平均分
徐丽 88 90 98 95 92.75
张兴 85 92 95 98 92.5
刘宁 89 89 90 92 90.0
张旭 82 86 89 90 86.75
dic_score={"徐丽":[88,90,98,95],"张兴":[85,92,95,98],"刘宁":[89,89,90,92],"张旭":[82,86,89,90]}
for k,v in dic_score.items():dic_score[k].append(sum(v)/len(v))
print("姓名\t语文\t数学\t英语\t计算机\t平均分")
for k,v in dic_score.items():print(k,end="\t")for x in v:print(x,end="\t")print()

#输出结果

姓名 语文 数学 英语 计算机 平均分
徐丽 88 90 98 95 92.75
张兴 85 92 95 98 92.5
刘宁 89 89 90 92 90.0
张旭 82 86 89 90 86.75

python 实验七 字典与集合 (上)相关推荐

  1. 大学python教材实验七字典与集合答案_2018-08-28 day7 python基础 字典和集合(含作业)...

    1.字典(dict) 一.字典是容器类型(序列 ),以键值对作为元素.字典里面存的数据全是以键值对的形式出现的 b/键值对----> 键:值(key:value) dict1 = {'key1' ...

  2. Python编程基础:实验3——字典及集合的使用

    Python编程基础:实验3--字典及集合的使用 文章目录 Python编程基础:实验3--字典及集合的使用 一.前言 二.我的环境 三.实验目的与要求 四.实验任务 1.程序填空 2.程序编程 五. ...

  3. 刻意练习:Python基础 -- Task06. 字典与集合

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  4. 【Python核心】字典和集合

    除了列表和元组,接下来看看两个同样很常见并且很有用的数据结构:字典(dict)和集合(set) 字典和集合在Python被广泛使用,并且性能进行了高度优化,其重要性不言而喻 一.字典和集合基础 1.1 ...

  5. 无字天书之Python第七页(基础数据结构—上)

    博客内容 传送门 前言 list列表 list列表的基本操作 通过索引取出列表的元素 列表连接 列表循环遍历 for while 查看list中是否有某个元素 删除列表以及列表中的值 获取最大值 li ...

  6. Python基础三--字典,集合,编码,深浅copy,元祖、文件操作

    字典 dict数据类型划分:可变数据类型,不可变数据类型不可变数据类型: 元组,bool值,int,str 可哈希可变数据类型: list,dict,set 不可哈希 dict key :必须是不可变 ...

  7. python实验七 网络爬虫和文本处理

    目录 实验原理: 实验准备: 实验步骤与内容: 参考代码: 运行结果: 学习网络爬虫常用工具包 requests,以及对网页解析工具 BeautifulSoup 等操作: 依托自然语言处理领域的文本数 ...

  8. Python进阶7——字典与集合

    1.创建字典的五种方式 d1=dict(one=1, two=2) d2={'one':1, 'two':2} d3=dict(zip(['one', 'two'], [1,2])) d4=dict( ...

  9. python实验七答案_Python实验报告七

    安徽工程大学Python程序设计 班级:物流192 姓名:唐家豪 学号:3190505234 成绩: 日期:2020/05/28 指导老师:修宇 [实验目的] 熟悉通过序列索引迭代执行循环:掌握元组. ...

  10. 微课|Python列表、字典、集合、字符串对象常用方法串讲

    推荐教材: <Python网络程序设计(微课版)>,ISBN:978-7-3025-8312-7,董付国,清华大学出版社,2021年8月出版 配套资源: 教学大纲.450页PPT.91个例 ...

最新文章

  1. form左上角有个锁的符号_第三章 表单笔记
  2. php引用计数的基本知识
  3. matlab pca 测试样本,matlab_PCA,训练集与测试集分开,原理和用法
  4. 如何在程序中添加iAd广告
  5. VTK:Utilities之WindowModifiedEvent
  6. Linux多线程之线程同步(条件变量)
  7. pb通过对象名称调用对象_域服务是命名空间,利用AD DS,通过对象名称可找到相关所有信息...
  8. 牛客练习赛84F-牛客推荐系统开发之下班【莫比乌斯反演,杜教筛】
  9. 重读经典(点云深度学习开山之作):《Deep learning on point clouds for 3D scene understanding》(持续更新中)
  10. 【网站推荐】Solaris 平台编写设备驱动程序
  11. oracle 39083,oracle数据库导入导出时ORA-39083;ORA-00439错误解决思路
  12. django组件-cookie与session
  13. linux常用关机命令,linux下常用关机命令
  14. eclipse语言包安装后如何进行英语中文切换
  15. ubuntu下使用CPU频率控制
  16. 小学计算机设备报表,小学信息技术教育及电教设备自查报告
  17. MATLAB:randn简介
  18. 开放耳机有什么优缺点,列举出几款口碑不错的开放式耳机
  19. 学海灯塔新增学习笔记上传功能
  20. 【智力题】兄弟姐妹的性别

热门文章

  1. 如何看待第三方百度云 Pandownload 作者被捕?
  2. 由 12306.cn 谈谈高并发+高负载网站性能技术
  3. 口算加密php怎么使用,从数盲到口算 ——带你玩转RSA加密算法(一)
  4. 记录一下QT下载安装及相关说明
  5. Hi3519V101运行MPP业务
  6. 怎么做移动APP测试,移动应用测试有哪些?
  7. How browsers work----Introduction
  8. 如何用手机访问电脑本地localhost网页, 以调试项目
  9. 软件配置管理中基线(baseline)
  10. [Python] 从ip138网站爬取ip所处地点