python字典程序题_Python学习之字典实现成绩管理程序
题目:上次写的一个模拟数据库,根据名字查询成绩,这次使用字典实现,要求如下:
自己定义一个字典,内容为 名字-成绩形式
实现通过名字查询成绩,判断指定名字成绩是否存在
增加,删除,修改指定名字的成绩
计算平均成绩(使用dict.values()和sum()方法)
查询最高成绩和最低成绩
遍历字典,打印所有人的成绩(可使用dict.keys(),dict.values()或者dict.items()这三个方法把字典转为可迭代的)
假设字典中有一样的成绩,请使用dict.values()方法,把所有成绩转换list类型,使用set()去重,输出不重复的所有成绩
代码如下:
datebase={'张三':75,'李四':80,'王五':80}
namerecord=['张三','李四','王五'] #储存操作记录
scorerecord=[75,80,85]
actionrecord=['增加','增加','增加']
while True:
print('-----------------------')
print(''' 成绩管理系统v2.0
1.添加学生及成绩
2.删除学生及成绩
3.修改学生成绩
4.查询学生成绩
5.查询平均成绩
6.打印所有学生成绩
7.查询最高分和最低分
8.输出所有不重复分数
9.显示操作记录
0.退出系统''')
print('-----------------------')
choice=input('请选择:')
#添加学生及成绩
if choice =='1':
name=input('请输入要添加的学生姓名:')
score=int(input('请输入{}的成绩:'.format(name))) #注意format用法,最好在{}中加变量名,如name,后面为 name=name
datebase[name]=score
namerecord.append(name)
scorerecord.append(score)
actionrecord.append('增加')
print('成功添加学生{},分数为{}。'.format(name,score))
#删除学生及成绩
elif choice =='2':
name=input('请输入要删除的学生姓名:')
namerecord.append(name)
scorerecord.append(datebase[name])
actionrecord.append('删除')
datebase.pop(name)
print('成功删除学生{}及其分数!'.format(name))
#修改学生成绩
elif choice =='3':
name=input('请输入要修改的学生姓名:')
score=int(input('请输入{}的成绩:'.format(name)))
datebase[name]=score
namerecord.append(name)
scorerecord.append(score)
actionrecord.append('修改')
print('成功修改学生{}的分数为{}。'.format(name,score))
#查询学生成绩
elif choice =='4':
name=input('请输入要查询的学生姓名:')
score=datebase.get(name,-1)
if score ==-1:
print('{}的成绩不存在!'.format(name))
else:
print('{}的成绩为{}!'.format(name,score))
#查询平均成绩
elif choice =='5':
averagescore=sum(datebase.values())/len(datebase)
print('平均分为{}。'.format(averagescore))
#打印所有学生成绩
elif choice =='6':
print('学生 成绩')
scoreprint=list(datebase.items())
scorenum=len(datebase)
for i in range(scorenum):
print('{} {}'.format(scoreprint[i][0],scoreprint[i][1])) #这里非常优秀
#查询最高分和最低分
elif choice =='7':
scoremax=max(datebase.values())
scoremin=min(datebase.values())
print('最高分为{},最低分为{}。'.format(scoremax,scoremin))
#输出所有不重复分数
elif choice =='8':
score=set(list(datebase.values()))
print('所有不重复分数为{}'.format(score))
#显示操作记录
elif choice =='9':
num=len(actionrecord)
print('序号 学生 成绩 操作')
for i in range(num):
print(' {} {} {} {}'.format(i+1,namerecord[i],scorerecord[i],actionrecord[i]))
#退出系统
elif choice =='0':
break
#其他输入
else:
print('请输入正确的序号!')
#谢谢群主!!!
"""
评价
这次跟上次那一版比,基本说过的问题都修复了,代码也优化了不少,且整体功能比要求更加丰富。
+1 对群主的感谢
+2 直观清晰的变量命名
+3 优秀的代码
+5 优秀且正确的逻辑
+5 对存在问题的强力修复
+10 list和dict魔鬼般的运用
-1 format的用法
"""版权声明:本文为原创文章,版权归 Helo 所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
python字典程序题_Python学习之字典实现成绩管理程序相关推荐
- python字典程序题_Python练习:字典
题目1 点击这里,下载数据文件 0016_1.txt 到本机上. 这个是一个数据文件,格式如下 薛蟠 4560 42 薛蝌 4460 25 薛宝钗 5776 43 薛宝琴 4346 42 王夫人 33 ...
- python读取字典元素笔记_Python 学习笔记 - 字典
Python 字典 字典是一种无序的.可修改的.可索引的容器. 字典使用花括号声明,具有键和值. mydic = { 'name':'孙悟空', 'origin':'猴子' } print(mydic ...
- python字典程序题_python字典练习题
python字典练习题 写代码:有如下字典 按照要求实现每一个功能 dict = {"k1":"v1","k2":"v2" ...
- python字典数据类型笔记_Python学习笔记整理(六)Python中的字典
一.字典介绍 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通 ...
- python字典题_python列表、字典相关练习题
1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) student={'name':'张三','age':'23','score':88,'te ...
- python是什么语言编写的程序称为_Python 学习(一)【Python语言简介-Python是什么】...
Python是一种编程语言,它的名字来源于一个喜剧.也许最初设计Python这种语言的人并没有想到今天Python会在工业和科研上获得如此广泛的使用. Python是什么(转载自Primus) 著名的 ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
- python从入门到_Python学习路线从入门到上手,如何快速Python学习?
因为清晰易读的风格,广泛的适用性,Python已经成为最受欢迎的编程语言之一.在TIOBE 排行榜中位居第四,是名副其实的人工智能第一语言. 风靡的另一个原因是,Python有非常多的第三方库.比如用 ...
- python集合数据对象_python学习第七天 基础数据类型补充 深浅copy 集合 关键字后面加可迭代对象...
在基础数据类型中可能遇到的坑: 元组: tuple1=(1) 的数据类型是int , tuple2=('alex')的数据类型是str 等 tuple1=(1,) 和 tuple2的数据类型是 tup ...
最新文章
- LabVIEW图像灰度分析与变换(基础篇—4)
- 黯然微信小程序杂记(一):从服务器获取数据 后端语言php
- 太酷炫了,我用 Python 画出了北上广深的地铁路线动态图
- openshift scc解析
- Android 实训日志:基于外部存储的音乐播放器V03
- C+ 轮融资发布会抽奖名单公布,还有 20 万礼物正在路上
- python argpare 模块的简单用法
- alsa 测试 linux_Linux低延迟服务器系统调优
- 【机器学习基础】一文搞懂机器学习里的L1与L2正则化
- redis的学习使用,第一章
- 道康宁有机硅助力动力电池发展
- ubuntu环境下使用cat命令合并代码
- 遇上DG挖矿病毒的处理记录
- Zxing 扫描码的ios简化版搭建过程
- SparkStreaming自定义Receiver
- 头的各个部位示意图_人体头部结构图解剖图 人体头部结构及功能
- 湖南成考新生如何查询学籍信息
- 6-9 字符串匹配 - C/C++ 数组及字符串c语言c++
- 天文学家发现“超级地球”
- 科大讯飞实现了APP用自己的声音听故事