最近在做人工智能微专业时发现了一道特别有趣的题目,原谅作者才疏学浅,花费了将近一下午的时间才写出正确的答案……想来惭愧
相信你们一定会喜欢的,代码中并没有用复杂的函数,只是采用简单的结构堆积,对于初学者十分友好!
下面就详细的为大家解答这一题目。
感兴趣的可以关注我……(只是可以,并不求关注,正在上学,不会有充足的时间定期发博客,谢谢大家理解)
这题就是简单的调用字典结构 ,即字典中嵌套列表
我以前学习时的卡片如下:
卡片中题目的正解
通过卡片大家可以先了解一下字典嵌套列表的基本格式与具体的作用,这是关键!
本题大同小异
(代码片不在以文本形式放置,本人用的平板不好操作,最后整体贴一完整代码)
就是简单的打印喽,这题不要技术含量的
唯一要注意的是尽量使用文字说明,不要一股脑print() ,写的代码别人也弄不清
就像高数中,别什么都洛必达……
可以公开的情报
\t : 转义字符,作用是调整输出的文本格式的
原文链接: link.
用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)
注意:代码的位置并不是像我现在排版的,这样只是为了方便看,具体以最后整体代码为主!
判断最高分数很简单,可以用擂台算法,也可以一个一个比较,全凭喜好……
代码:确定最大值
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)