编写程序,设计一个嵌套的字典,形式为{姓名1:{课程名称1:分数1,课程名称2:分数2,…},…},输入一些数据,然后计算每个同学的总分、各科平均分。
dic = {}
num = int(input('学生数量:'))
for i in range(num):
name = input('姓名:')
dic[name] = {}
count = int(input('课程数量:'))
for j in range(count):
classname = input('课程名字:')
gra = int(input('成绩:'))
dic[name][classname] = gra
for k,v in dic.items():
sumk = 0
maxk = 0
count =0
for k1,v1 in v.items():
sumk += v1
count +=1
if maxk < v1:
maxk = v1
print('{}最高分{},平均分{}'.format(k,maxk,sumk/count))
得到一个字典后,分数不用循环计算,用现成的函数比较方便:
dic = {}
num = int(input('学生数量:'))
for i in range(num):
name = input('姓名:')
dic[name] = {}
count = int(input('课程数量:'))
for j in range(count):
classname = input('课程名字:')
dic[name][classname] = int(input('成绩:'))
for k,v in dic.items():
total = sum(v.values())
s_max = max(v.values())
mean = total/len(v.values())
print(f'姓名:{k} 总分:{total} 最高分:{s_max} 平均分:{mean}')