代码如下:{如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢}。
def GeneraiGrade(M_exam,E_exam,Rate=0.4):
total = {}
for k in E_exam:
m = M_exam[k]
e = E_exam[k]
s = m * Rate + e * (1-Rate)
if s>=90:
f = "A"
elif s>=80:
f = "B"
elif s>=70:
f = "C"
elif s>=60:
f = "D"
else:
f = "F"
total[k.lower()] = [m,e,f]
return total
mid_exam = {"Tommy":78,"Jarry":89,"Sunny":93,"Honey":78,"LiIy":80} #期中考试成绩主成绩单姓名:分数
end_exam = {"Tommy":60,"Jarry":69,"Sunny":88,"Honey":61,"LiIy":88} #期末考试成绩主成绩单姓名:分数
mid_examO = {"Money":56,"Crazy":99,"Windy":75,"Cloudy":87,"LiIy":68} #期中考试成绩单补充材料
end_examO = {"Money":66,"Cloudy":94,"Crazy":77,"Windy":82,"LiIy":90} #期末考试成绩单补充材料
mid_exam.update(mid_examO)
end_exam.update(end_examO)
rate = float(input())
if 0<=rate<=1:
Total_score = GeneraiGrade(mid_exam,end_exam,rate)
else:
Total_score = GeneraiGrade(mid_exam,end_exam,rate)
name = input().strip().lower()
print(Total_score[name],end=" ")
Grades = {'A', 'C', 'B', 'D', 'F'} - set({v[2] for v in Total_score.values()})
print(*Grades,sep=" ",end=" ")
def GeneralGrade(M_exam,E_exam,rate=0.4):
scores=M_exam*rate+E_exam*(1-rate)
if scores>=90:
return [M_exam, E_exam,'A']
elif 80<=scores<90:
return [M_exam, E_exam,'B']
elif 70 <= scores < 80:
return [M_exam, E_exam,'C']
elif 60 <= scores < 70:
return [M_exam, E_exam,'D']
else:
return [M_exam, E_exam,'F']
mid_exam={'Tommy':78,'Jarry':89,'Sunny':93,'Honey':78,'Lily':80}
end_exam = {'Tommy': 60, 'Jarry': 69, 'Sunny': 88, 'Honey': 61, 'Lily': 88}
mid_exam0 = {'Money': 56, 'Crazy': 99, 'Windy': 75, 'Cloudy': 87, 'Lily': 68}
end_exam0 = {'Money': 66, 'Cloudy': 94,'Crazy': 77, 'Windy': 82, 'Lily': 90}
mid_exam.update(mid_exam0)
end_exam.update(end_exam0)
mid_list=sorted(mid_exam.items(),key=lambda x:x[0],reverse=True)
end_list = sorted(end_exam.items(), key=lambda x: x[0],reverse=True)
rate=eval(input())
total_scores={}
Grades=set()
for m,e in zip(mid_list,end_list):
if 0<rate<1:
x=GeneralGrade(m[1],e[1], rate)
total_scores.update({m[0]:x})
Grades.add(x[2])
else:
x = GeneralGrade(m[1], e[1])
total_scores.update({m[0]:x})
Grades.add(x[2])
No_Grades=set(['A','B','C','D','F'])-Grades
name=input().title()
print(total_scores[name],*No_Grades)
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632