选手名称与选手代码的对应关系如下表:
选手名称 | 选手 A | 选手 B | 选手 C | 选手 D | 选手 E | 选手 F | 选手 G | 选手 H |
选手代码 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
图a 图b 图 c
(1)根据题意,若评委人数为7人,投票数据分别为“142,565,620,361,203,604,136”,则入选人员
A.选手 A,选手 B,选手 G B.选手 C,选手 D,选手 G
C.选手 A,选手 C,选手 D D.选手 B,选手 D,选手 G
(2)实现上述功能的代码如下, 请在划线处填入合适的代码。
from random import randint
def check(x): #检测投票是否有效
flag=False
sum,checklist=0,[0]*8
if len(x)==3:
for i in range(3):
if "0"<=x[i]<="7":
checklist[int(x[i])]=1
for i in range(8):
sum+=checklist[i]
if
flag=True
return flag
dict={0:"选手 A",1:"选手 B",2:"选手 C",3:"选手 D",4:"选手 E",5:"选手 F",6:"选手 G",7:"选手 H"}
f=open("vote.txt","r")
line=f.readline() #第一行为列标题,读取两次跳过该行
line=f.readline()
count=[0]*8
while line:
linelist=line.split(",") #将字符串按逗号分隔为列表
if check(s):
for i in range(3):
count[int(s[i])]+=1
line=f.readline()
f.close()
a=[]
for i in range(8):
a.append([dict[i],count[i]])
#将列表 a 按照选手票数从高到低排序并输出,代码略
m=3 #入选人数
b=[a[0]] ;k=1;st=0
for i in range(1,len(a)):
if
break
if a[i][1]!=a[i-1][1]:
st=i
k+=1
b.append(a[i])
print("满足条件的选手:")
for i in range(k):
print(b[i]) #输出满足票数前 m 条件的参赛选手
#输出最终入选人员
print("最终入选人员:")
for i in range(st):
print(b[i])
#末位同分的同学, 用抽奖的方式确定入选人员
flag = [0] * k
while d>0:
lucky=randint(st,k-1)
if flag[lucky]==0:
print(b[lucky])
flag[lucky]= 1
d-=1
#在最后同分的同学中随机抽取

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

