根据有效分数序列及等级差值,计算并打印等级相应分数区间。
(笔记模板由python脚本于2024年01月20日 23:57:32创建,本篇笔记适合会条件分支语句的初学者的coder翻阅)
Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
短信一
每次考试我们都会根据人数比例,估算有多少学生会上线,然后确定相应的有效分,上有效分为A等。语数外三科有效分下10分,为B。有效分下20分,为B-。有效分下30分为B–,(政史地生四科有效分下5分为B),依此类推。老师及家长看到孩子的等级ABC,大概能推算出其成绩情况。
短信二
【学有道】本次期末考试成绩有效分:总分473,语文106,数学99,英语125,生物35,政治35,历史33,地理40。
短信三
【学有道】本次期末考试成绩:总分A-,语文B,数学B-,英语B,生物A,政治B,历史B–,地理B。
收到娃娃的期末成绩,看得是一头雾水,还是适应看以前那种“ 实 际 分 数 实际分数 实际分数”。写写算算易于出错,用一段代码来转换成分数区间,直观易于理解些:只需输入收到的成绩等级及有效分数,代码自动计算并打印区间。
说 干 就 干 , 走 起 — — 说干就干,走起—— 说干就干,走起——
根据语、数、英的等级差值 10 10 10 和生、政、史、地等级差值 5 5 5 ,可以得到总分等级差值: 10 × 3 + 5 × 4 = 50 10×3 +5×4= 50 10×3+5×4=50 。即可据此编写代码——
代码解析
Python代码
rulerScore = list(map(float, input(f"\n{' 成绩换算 ':=^36}\n\n{text}{'':~^40}\n\n有效分:").strip().split()))
rulerScore = map(float, '473 106 99 125 35 35 33 40'.split()) if not rulerScore else rulerScore # 不输入有效分取值缺省。
level = input('成绩等级:').strip().split()
level = 'A- B- B B A B B-- B'.split() if not level else level # 不输入成绩等级取值缺省。
#input((level, rulerScore)) # 调试用语句。
代码解析
Python代码
def toScore(kindClass, level, rulerScore):
ratio = 50 if kindClass == 0 else 10 if kindClass == 1 else 5 # 根据科目选择计算系数(科目种类kindClaas总分0,语数英为1,其余为2)。
match level:
case 'A':
return f"A ≥ {rulerScore}"
case 'A-':
return f"{rulerScore-ratio} ≤ A- < {rulerScore}"
case 'B':
return f"{rulerScore-ratio} ≤ B < {rulerScore}"
case 'B-':
return f"{rulerScore-ratio*2} ≤ B- < {rulerScore-ratio}"
case 'B--':
return f"{rulerScore-ratio*3} ≤ B-- < {rulerScore-ratio*2}"
case 'C':
return f"C < {rulerScore-ratio*3}"
代码解析
Python代码
def change(level, rulerScore):
filds = '总分 语文 数学 英语 生物 政治 历史 地理'.split()
data = list(zip(filds, level, rulerScore))
print(f"\n{' 成绩换算结果 ':~^34}\n") #打印空行。
i = data[0]
print(f"{i[0]}({i[2]}): {toScore(0, i[1], i[2])}") # 总分。
for i in data[1:4]: #语数英换算。
print(f"{i[0]}({i[2]}): {toScore(1, i[1], i[2])}")
for i in data[4:]: # 生政史地。
print(f"{i[0]}({i[2]}): {toScore(2, i[1], i[2])}")
print(f"\n{'':~^40}\n\n{'':=^40}")
(源码较长,点此跳过源码)
#!/sur/bin/nve python
# coding: utf-8
def toScore(kindClass, level, rulerScore):
ratio = 50 if kindClass == 0 else 10 if kindClass == 1 else 5 # 根据科目选择计算系数(科目种类kindClaas总分0,语数英为1,其余为2)。
match level:
case 'A':
return f"A ≥ {rulerScore}"
case 'A-':
return f"{rulerScore-ratio} ≤ A- < {rulerScore}"
case 'B':
return f"{rulerScore-ratio} ≤ B < {rulerScore}"
case 'B-':
return f"{rulerScore-ratio*2} ≤ B- < {rulerScore-ratio}"
case 'B--':
return f"{rulerScore-ratio*3} ≤ B-- < {rulerScore-ratio*2}"
case 'C':
return f"C < {rulerScore-ratio*3}"
def change(level, rulerScore):
filds = '总分 语文 数学 英语 生物 政治 历史 地理'.split()
data = list(zip(filds, level, rulerScore))
print(f"\n{' 成绩换算结果 ':~^34}\n") #打印空行。
i = data[0]
print(f"{i[0]}({i[2]}): {toScore(0, i[1], i[2])}") # 总分。
for i in data[1:4]: #语数英换算。
print(f"{i[0]}({i[2]}): {toScore(1, i[1], i[2])}")
for i in data[4:]: # 生政史地。
print(f"{i[0]}({i[2]}): {toScore(2, i[1], i[2])}")
print(f"\n{'':~^40}\n\n{'':=^40}")
if __name__ == '__main__':
text = '''
每次考试我们都会根据人数比例,估算有多少学生会上线,然后确定相应的有效分,上有效分为A等。语数外三科有效分下10分,为B。有效分下20分,为B-。有效分下30分为B--,(政史地生四科有效分下5分为B),依此类推。老师及家长看到孩子的等级ABC,大概能推算出其成绩情况。
【学有道】本次期末考试成绩有效分:总分473,语文106,数学99,英语125,生物35,政治35,历史33,地理40。
按“总分 语文 数学 英语 生物 政治 历史 地理”的顺序依次输入有效分及等级,如
有效分:473 106 99 125 35 35 33 40(缺省直接回车)
成绩等级:A- B B- B A B B-- B(缺省直接回车)
'''
rulerScore = list(map(float, input(f"\n{' 成绩换算 ':=^36}\n\n{text}{'':~^40}\n\n有效分:").strip().split()))
rulerScore = map(float, '473 106 99 125 35 35 33 40'.split()) if not rulerScore else rulerScore # 不输入有效分取值缺省。
level = input('成绩等级:').strip().split()
level = 'A- B- B B A B B-- B'.split() if not level else level # 不输入成绩等级取值缺省。
#input((level, rulerScore)) # 调试用语句。
change(level, rulerScore)
我的HOT博:
本次共计收集289篇博文笔记信息,总阅读量44.72w。数据采集于2023年12月11日 23:07:13,用时5分11.8秒。阅读量不小于4.0k的有17篇。
截屏图片
精品文章:
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
CSDN实用技巧博文: