按成绩分班

starletkiss 2020-07-08

题目描述

根据输入的各科成绩分班。
文科成绩包含语文,数学,英语,政治,历史,地理六门课;
理科成绩包含语文,数学,英语,物理,化学,生物六门课;

当平均成绩大于90分时分到A班,80到90分B班,80以下分C班。
但理科生如果数学成绩在80分以下,就不能分到A班;物理成绩在70分以下,就不能分到B以上班级;
但文科生如果语文成绩在80分以下,就不能分到A班;政治成绩在70分以下,就不能分到B以上班级;

最终要打印出平均成绩和分班的结果。
输入的是六门课成绩,比如:
90,93,90,物理=89,化学=88,生物=91
前三个值只固定对应语文、数学、英语三门课,所有不需要写课程名。
后三门课要写上课程名,理科是物理、生物、化学;文科是政治、历史、地理,顺序可以不固定。

输入

90,93,90,物理=89,化学=88,生物=91

输出

平均分是:90.17,分配班级是:理科A班
 
string = input()
#将输入字符串转换为字典作为函数关键字参数传入
l = string.split(‘,‘)
d = {}
d[‘语文‘] = int(l[0])
d[‘数学‘] = int(l[1])
d[‘英语‘] = int(l[2])
for i in l[3:]:
    d[i.split(‘=‘)[0]]=int(i.split(‘=‘)[1])

#定义函数实现分班
def main(**kwargs):
    sum = 0
    count = 0
    for k,v in kwargs.items():
        sum += v
        count += 1
    avg = sum / count
    if "物理" in kwargs:
        if avg > 90 and kwargs.get("数学") >= 80:
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"理科A班"))
        elif avg <= 90 and avg >= 80 or (avg > 90 and kwargs.get("数学") < 80) or (avg > 90 and kwargs.get("物理") >= 70):
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"理科B班"))
        else:
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"理科C班"))
    else:
        if avg > 90 and kwargs.get("语文") >= 80:
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"文科A班"))
        elif avg <= 90 and avg >= 80 or (avg > 90 and kwargs.get("语文") < 80) or (avg > 90 and kwargs.get("政治") >= 70):
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"文科B班"))
        else:
            print("平均分是:{:.2f},分配班级是:{}".format(avg,"文科C班"))

#调用函数运行
if __name__ == ‘__main__‘:
    main(**d)

相关推荐

seasongirl / 0评论 2020-06-05