随机生成阅卷分数类型。
###阅卷问题
import random
import pandas as pd
score = [i for i in range(1,17) ] ## 所有分数区间
data = pd.DataFrame(columns='score_1,score_2,score_3,final_score'.split(','))
print(data)
for i in range(100): ### 设置总的循环次数
a=random.choice(score)
b = random.choice(score)
c = 0
final_score = None
if abs(a - b) <= 4 :
final_score = (a+b)/2 ### 如果不超过阈值,取平均数
else :
c = random.choice(score) ### 引入第三人打分
if abs(a-c) == abs(b-c) :
final_score = (a+c)/2 if a>=b else (b+c)/2
elif abs(a-c) >4 and abs(b-c) >4 :
data.loc[len(data)] = [a, b, c, '还在研究']
print('阅卷存在分歧,该生试卷进入评判组')
else :
final_score = (a+c)/2 if abs(a-c)<=abs(b-c) else (b+c)/2 ###第5种情况
data.loc[len(data)] = [a,b,c,final_score]
for i in data.index :
a,b,c , final_score= data.loc[i,:]
print(f'阅卷老师分数分别为:{int(a)} , {int(b)} , {int(c)} 最终成绩为:{final_score}')
效果
实际阅卷代码like:
需要设置学生次数(循环次数)
手动输入各个学生数据
###阅卷问题
import random
import pandas as pd
score = [i for i in range(1,17) ] ## 所有分数区间
data = pd.DataFrame(columns='班级,学号,score_1,score_2,score_3,final_score'.split(','))
print(data)
for i in range(5): ### 设置总的循环次数
cls , xh, a , b=input('请输入班级,学号,第一第二老师的阅卷分数,空格隔开 ').split(' ')
c = 0
final_score = None
a,b = int(a) , int(b) ### 数据类型转换
if abs(a - b) <= 4 :
final_score = (a+b)/2 ### 如果不超过阈值,取平均数
else :
c = int(input('请输入第三个老师的分数') ) ### 引入第三人打分
if abs(a-c) == abs(b-c) :
final_score = (a+c)/2 if a>=b else (b+c)/2
elif abs(a-c) >4 and abs(b-c) >4 :
data.loc[len(data)] = [cls , xh ,a, b, c, '还在研究']
print('阅卷存在分歧,该生试卷进入评判组')
else :
final_score = (a+c)/2 if abs(a-c)<=abs(b-c) else (b+c)/2 ###第5种情况
data.loc[len(data)] = [cls , xh , a , b , c , final_score]
for i in data.index :
cls, xh , a,b,c , final_score= data.loc[i,:]
print(f'阅卷老师分数分别为:{int(a)} , {int(b)} , {int(c)} 最终成绩为:{final_score}')
def pie_base(data, title) -> Pie:
c = (
Pie()
.add("", data)
.set_global_opts(title_opts=opts.TitleOpts(title=title))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
return c