已知存储学生成绩信息的字典结构如下: stu = {"name":"杨一","english":85,"python":90,"math":92}。编写要求: (1)请使用上述结构输入n个学生的name,及 english,python,math三门课程的成绩并存放于列表中。 (2)n为由用户输入大于0的整数,name为字符串类型,english、python、math位数值型类型 (3)计算每位同学的平均成绩,同时在字典列表中添加平均成绩(保留小数1位)的信息,输出所有学生的成绩信息 (4)按平均分从高到低输出学生姓名和平均分
1条回答 默认 最新
- 冷寒越 2021-05-23 23:18关注
while True: n = int(input("您想输入学生信息个数:")) if n > 0: break else: print("学生个数必须为正整数,请重新输入!") stu_list = [] for i in range(n): print("请输入第%d个学生信息:" % (i+1)) stu_name = input("请输入学生姓名:") engl_scor = eval(input("请输入%s的英语成绩:" % stu_name)) python_scor = eval(input("请输入%s的python成绩:"% stu_name)) math_scor = eval(input("请输入%s的数学成绩:"% stu_name)) stu = {"name":stu_name,"english":engl_scor,"python":python_scor,"math":math_scor} scor_avg = (stu["english"]+stu["python"]+stu["math"])/3 stu["平均成绩"] = round(scor_avg, 1) stu_list.append(stu) print("录入学生信息如下:") mat = "{:^15}\t{:^15}\t{:^15}\t{:^15}\t{:^15}" # 输出格式 print(mat.format("姓名", "英语成绩", "python成绩", "数学成绩", "平均成绩")) for student in stu_list: print(mat.format(student["name"], student["english"], student["python"], student["math"], student["平均成绩"])) scor_sorted = sorted(stu_list, key = lambda i: i['平均成绩'], reverse = True) mat1 = "{:^15}\t{:^15}" # 输出格式 print("按平均成绩排序如下:") print(mat1.format("姓名", "平均成绩")) for j in scor_sorted: print(mat1.format(j["name"], j["平均成绩"]))
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 4无用
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据