python 实验七 字典与集合 (上)

这篇具有很好参考价值的文章主要介绍了python 实验七 字典与集合 (上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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=k
        break
for k,v in dic_estate.items():
    if end in v:
        endStop=k
        break
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文章来源地址https://www.toymoban.com/news/detail-436894.html

到了这里,关于python 实验七 字典与集合 (上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python -- 列表、元组、字典、集合

    目录 一、列表 1.列表介绍 1)列表的介绍 2)列表创建方式 2.列表的增删改查 1)获取列表中某个元素(查) 2)修改元素的值(改) 3)删除元素(删) 4)添加元素(增) 3.其它常用方法 1)列表常用方法 2)常用Python内置方法 二、元组 1.元组介绍 1)元组的介绍 2)元组创建

    2024年02月03日
    浏览(63)
  • Python-字典与集合

    学习内容 :Python基础入门知识 专栏作者 : 不渴望力量的哈士奇 不渴望力量的哈士奇擅长Python全栈白宝书[更新中],⑤ - 数据库开发实战篇,网安之路,等方面的知识,不渴望力量的哈士奇关注云原生,算法,python,集成测试,去中心化,web安全,智能合约,devops,golang,功能测试,测试工具

    2024年02月05日
    浏览(40)
  • 【Python】冻结字典和集合

    一般情况下,创建好字典和集合之后可以对其中的元素进行添加或删除。但是有时,我们出于某种原因需要将字典和集合进行冻结,不允许对其中的元素进行添加或删除。这个时候,我们就可以使用MappingProxyType函数和frozenset函数直接创建或冻结字典或集合。 创建冻结字典

    2024年02月02日
    浏览(49)
  • python入门(5)序列、字典、集合

    Python 中的序列是一种数据类型,用于存储一组有序的元素。序列是 Python 中最基本的数据结构之一,具有以下基本特性: 有序性:序列中的元素按照一定的顺序排列,可以通过索引访问和操作特定位置的元素。 可迭代性:序列可以进行迭代操作,例如使用循环遍历序列中的

    2024年02月06日
    浏览(40)
  • Python-字典和集合编程技巧

    hello,这里是Token_w的博客,欢迎您的到来 今天主要讲解Python字典和集合在实际编程中的使用技巧 整理不易,对您有所帮助,希望得到你的支持!感谢!!! 实际案例 案例1:过滤掉列表[3, 9, -1, 10, 20, -2, …] 中的负数 案例2:筛出字典{‘lisi’: 79, ‘Jin’: 88, ‘lucy’: 93, …

    2024年02月13日
    浏览(56)
  • Python零基础入门(八)——字典与集合

    个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊 欢迎来到本系列教程的第八篇,这一篇博客将介绍

    2024年02月17日
    浏览(41)
  • 【Python】基础数据结构:列表——元组——字典——集合

    Python提供了多种内置的数据结构,包括列表( List )、元组( Tuple )和字典( Dictionary )。这些数据结构在Python编程中都有着广泛的应用,但它们各有特点和适用场景。 列表是一种有序的集合,可以随时添加和删除其中的元素。列表是可变的,也就是说,你可以修改列表的

    2024年02月10日
    浏览(51)
  • Python数据容器——列表、元组、字符串、集合、字典

    作者: Insist-- 个人主页: insist--个人主页 本文专栏:Python专栏 专栏介绍: 本专栏为 免费 专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 目录 一、了解数据容器 1. 为什么需要数据容器? 2. 数据容器是什么? 二、数据容器—列表(list) 1. 列表的定义 2. 列表的

    2024年02月08日
    浏览(64)
  • Python-基础篇-数据结构-列表、元组、字典、集合

    列表、元组 字典、集合 💬正如在现实世界中一样,直到我们拥有足够多的东西,才迫切需要一个储存东西的容器,这也是我坚持把数据结构放在最后面的原因一一直到你掌握足够多的技能,可以创造更多的数据,你才会重视数据结构的作用。这些储存大量数据的容器,在

    2024年01月21日
    浏览(129)
  • 【Python】一文带你掌握数据容器之集合,字典

    思考:我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢? 通过特性来分析: (1)列表可修改、 支持重复元素且有序 (2)元组、字符串不可修改、 支持重复元素且有序 大家有没有看出一些局限? 局限就在于:

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包