m0_58318154 2021-05-28 19:56 采纳率: 75%
浏览 49
已采纳

用python解答学生成绩

 

  • 写回答

3条回答 默认 最新

  • 关注

     代码如下:{如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢}。

    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=" ")
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序