歌唱比赛有十个评委,分别给出一到一百分,除去一个最高分,除去一个最低分,剩余8个人的给分平均值作为选手的最终得分,编写一个程序找出评分最公平的评委
import random
score_list = [random.randint(1, 10) for i in range(10)]
print("原始的打分列表:%s" % (score_list))
score_list_temp = score_list.copy()
max_value = max(score_list)
min_value = min(score_list)
score_list_temp.remove(max_value)
score_list_temp.remove(min_value)
mean = sum(score_list_temp) / len(score_list_temp)
print("去掉最高最低分后的列表:%s, 平均分为:%s" % (score_list_temp, mean))
# 将打分顺序以及与平均分的差存在字典中,并按差值排序
fair_dict = {idx: abs(score - mean) for idx, score in enumerate(score_list, start=1)}
sorted_list = sorted(fair_dict.items(), key=lambda x: x[-1])
print("打分公平的裁判有:")
for item in sorted_list:
if item[-1] == sorted_list[0][-1]:
print('第%s位' % item[0])
else:
break
执行结果:
有帮助的话,请点采纳该答案~
scores = list(map(int, input().split()))
avg = (sum(scores) - max(scores) - min(scores)) / 8
distance = [abs(i-avg) for i in scores]
ans, mindis = 1, distance[0]
for idx, dis in enumerate(distance, 1):
if dis < mindis:
mindis = dis
ans = idx
print(f"第{ans}位评委最公平")
打开这个包我们可以得到我们想要的结果,找到了search_url ,我们可以先拿下来,稍后做分析
Request URL:https://songsearch.kugou.com/song_search_v2?callback=jQuery112403044970993079412_1583928714071&keyword=%E5%B9%B4%E5%B0%91%E6%9C%89%E4%B8%BA&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1583928714073
这个url里面,经过各种调试,可以得出一些结论,
callback=jQuery112403044970993079412_1583928714071:这一个东西用来提高搜索结果准确度的
keyword=%E5%B9%B4%E5%B0%91%E6%9C%89%E4%B8%BA:这个就是我们搜索框的关键字
page=1:就是第一页
pagesize=30:就是搜索结果返回30条数据
_=1583928714073:这个参数是必须带上的,不然请求会失败
其余的好像去了也可以,也没出什么问题,但是带上也没关系,不会有害处
所以我们可以构建自己的search_url,更具关键字自己调就好