python—成绩管理系统考试题目:小学五年级学生小明、小王、小丽、小花的语文、英语、数学成绩如……

python—成绩管理系统考试题目:小学五年级学生小明、小王、小丽、小花的语文、英语、数学成绩如……

最近在做人工智能微专业时发现了一道特别有趣的题目,原谅作者才疏学浅,花费了将近一下午的时间才写出正确的答案……想来惭愧
相信你们一定会喜欢的,代码中并没有用复杂的函数,只是采用简单的结构堆积,对于初学者十分友好!
下面就详细的为大家解答这一题目。
感兴趣的可以关注我……(只是可以,并不求关注,正在上学,不会有充足的时间定期发博客,谢谢大家理解)
在这里插入图片描述

第一题

利用字典内嵌列表形式记录表1所示内容

这题就是简单的调用字典结构 ,即字典中嵌套列表
我以前学习时的卡片如下:
在这里插入图片描述
在这里插入图片描述
卡片中题目的正解
在这里插入图片描述
通过卡片大家可以先了解一下字典嵌套列表的基本格式与具体的作用,这是关键!

本题大同小异
(代码片不在以文本形式放置,本人用的平板不好操作,最后整体贴一完整代码)
在这里插入图片描述

第二题

打印上述记录内容

就是简单的打印喽,这题不要技术含量的
唯一要注意的是尽量使用文字说明,不要一股脑print() ,写的代码别人也弄不清
在这里插入图片描述
就像高数中,别什么都洛必达……
在这里插入图片描述
可以公开的情报
\t : 转义字符,作用是调整输出的文本格式的
https://zhuanlan.zhihu.com/p/27171568
原文链接: link.

第三题

要求用一个for循环统计所有人的语文、英语、数学成绩

用for循环将所有人的语文……成绩统计出来
像这样:
在这里插入图片描述
字典中如何用for循环遍历??
不懂得建议多看下书本,基础问题,当然,相信大家都掌握了这个知识点。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

第四题

求每科的平均成绩

这题 emmmmm,首先我们要理清的思路:
1.

for grade in Grade_fifth.values():
print(grade[2])

grade[2]为一个字符串,切不可当作整数计算,否则会报错!
**2.**求语文总成绩

sum_Language = 0
sum_English = 0
sum_Math = 0
sum_Language = sum_Language + float(grade[0])

sum_English = sum_English + int(grade[1])

sum_Math = sum_Math + int(grade[2])

注意字符串与整数,浮点型数的相互转化关系

average_Language = sum_Language/4
average_English = sum_English/4
average_Math = sum_Math/4
print("语文、英语、数学平均成绩分别是:")
print(average_Language)
print(average_English)
print(average_Math)

注意:代码的位置并不是像我现在排版的,这样只是为了方便看,具体以最后整体代码为主!

第五题

求每科最高成绩及对应姓名(Hardest)

判断最高分数很简单,可以用擂台算法,也可以一个一个比较,全凭喜好……
代码:确定最大值

Max_Language = 0
if(Max_English <= float(grade[0])):
        Max_English = float(grade[0])

1.首先,明白一点,难点在于如何将人名和数据对应起来,这对于资深大佬来说不是难题,但对于像我们这样的初学者就不简单了。
2.其实我们大可再次创建一个列表list存储人名

list = ['小明','小王','小丽','小花']

但是如何将list与最大值联系在一起呢,就是如何将Max_English与list中对应人名联系一起。
其实我们可以设想一下,保险公司如何联系你呢,当然是中介了,对!我们就需要一个中介!

timer = 0
Max_English = 0
English_max_name = 0
for grade in Grade_fifth.values(): 
	if(Max_English <= int(grade[1])):
        	Max_English = int(grade[1])
        	English_max_name = timer
        timer = timer+1
        
print("英语最高成绩及对应姓名")
print(list[English_max_name])
print(Max_English)  

比如说,在这里插入图片描述
到此结束!!!

完整代码

sum_Language = 0
sum_English = 0
sum_Math = 0
Max_Language = 0
Max_English = 0
Max_Math = 0
list = ['小明','小王','小丽','小花']
Language_max_name = 0
English_max_name = 0
Math_max_name = 0

Grade_fifth = {
    '小明':['95.5','98','97'],
    '小王':['96','92','82'],  
    '小丽':['91','100','90'],
    '小花':['88','93','99'],      
      }
for name,grade in Grade_fifth.items():
    print("\n"+name+"语文、英语、数学成绩是:")
    for grade_specify in grade:
#打印上述记录内容22222222222222222222
        print("\t"+grade_specify)
#要求用一个for循环统计所有人的语文、英语、数学成绩3333333333333333333

timer = 0
print("所有同学语文成绩是:")
for grade in Grade_fifth.values(): 
    print(grade[0])
    sum_Language = sum_Language + float(grade[0])
    if(Max_Language <= float(grade[0])):
        Max_Language = float(grade[0])
        Language_max_name = timer
    timer = timer+1
    
timer = 0
print("所有同学英语成绩是:")
for grade in Grade_fifth.values():   
    print(grade[1])
    sum_English = sum_English + int(grade[1])
    if(Max_English <= int(grade[1])):
        Max_English = int(grade[1])
        English_max_name = timer
    timer = timer+1

timer = 0
print("所有同学数学成绩是:")
for grade in Grade_fifth.values():       
    print(grade[2])
    sum_Math = sum_Math + int(grade[2])
    if(Max_Math <= int(grade[2])):
        Max_Math = int(grade[2])
        Math_max_name = timer
    timer = timer+1
#求每科的平均成绩4444444444444444444444444444444
average_Language = sum_Language/4
average_English = sum_English/4
average_Math = sum_Math/4
print("语文、英语、数学平均成绩分别是:")
print(average_Language)
print(average_English)
print(average_Math)
#求每科最高成绩及对应姓名5555555555555555555555555
print("语文最高成绩及对应姓名")
print(list[Language_max_name])
print(Max_Language)
print("英语最高成绩及对应姓名")
print(list[English_max_name])
print(Max_English)
print("数学最高成绩及对应姓名")
print(list[Math_max_name])
print(Max_Math)

编译结果(.exe)在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46742690/article/details/106623422
今日推荐