按成绩分班
Posted synown
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按成绩分班相关的知识,希望对你有一定的参考价值。
题目描述
根据输入的各科成绩分班。
文科成绩包含语文,数学,英语,政治,历史,地理六门课;
理科成绩包含语文,数学,英语,物理,化学,生物六门课;
当平均成绩大于90分时分到A班,80到90分B班,80以下分C班。
但理科生如果数学成绩在80分以下,就不能分到A班;物理成绩在70分以下,就不能分到B以上班级;
但文科生如果语文成绩在80分以下,就不能分到A班;政治成绩在70分以下,就不能分到B以上班级;
最终要打印出平均成绩和分班的结果。
输入的是六门课成绩,比如:
90,93,90,物理=89,化学=88,生物=91
前三个值只固定对应语文、数学、英语三门课,所有不需要写课程名。
后三门课要写上课程名,理科是物理、生物、化学;文科是政治、历史、地理,顺序可以不固定。
文科成绩包含语文,数学,英语,政治,历史,地理六门课;
理科成绩包含语文,数学,英语,物理,化学,生物六门课;
当平均成绩大于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)
以上是关于按成绩分班的主要内容,如果未能解决你的问题,请参考以下文章
row_number() over (partition by order by)的用法
华为OD机试 - 分班(Java) | 机试题+算法思路+考点+代码解析 2023