图 a | 图 b |
def find(now,step):
i=now
while score[i][2]==score[now][2]:
①
return i
import pandas as pd
df=pd.read_excel ("知识竞赛.xlsx")
df= ②
score=df.values #二维数组 score 存储所有参赛学生的考号、班级和总分,按总分降序排列
n=len(score)
prize=["一等奖","二等奖","三等奖"]
print("总人数:"+str(n))
s=input("请分别输入一二三等奖的比例: ")
percent=list(map(float,s.split(","))) #一二三等奖比例转换成实数存储在列表 percent 中 nums=[0,0,0]
nums[0]=round( ③ )
for i in range(1,3):
nums[i]=nums[i-1]+round(n*percent[i])
pre=0;res=[""]*n #res 存储学生的奖次
for i in range(3):
now=nums[i]-1
k1=find(now,-1)
k2=find(now,1)
if k2-now<=now-k1:
now=k2-1
line=score[k2-1][2]
else:
now=k1
line=score[k1][2]
print(prize[i],"人数:",now-pre+1,"分数线:",line)
for j in range(pre,now+1):
res[j]=prize[i]
④