学校举办歌唱比赛,邀请10位评委为参赛选手打分。 编程实现计算选手的最后得分,分数计算方法如下: (1)去掉一个最低分(有相等最低分,则去掉其中1个) (2)去掉一个最高分(有相等最高分,则去掉其中1个) (3)最终得分为余下的8位评审的平均分 要求:所有评委的一次打分情况由用户输入,并存放于元组之中,使得评分数据不能修改。
时间: 2023-06-05 11:47:06 浏览: 422
这道题目是一个学校举办歌唱比赛,邀请十位评委为参赛选手打分。编程实现计算选手的最后得分,分数计算方法如下:
(1)去掉一个最低分(有相等最低分,则去掉其中1个)
(2)去掉一个最高分(有相等最高分,则去掉其中1个)
(3)最终得分为余下下四位评委的平均分。
要求:所有评委的一次打分情况由用户输入,并存放于元组之中,使得评分数据不能修改。
相关问题
这道题目是一个学校举办歌唱比赛,邀请十位评委为参赛选手打分。编程实现计算选手的最后得分,分数计算方法如下: (1)去掉一个最低分(有相等最低分,则去掉其中1个) (2)去掉一个最高分(有相等最高分,则去掉其中1个) (3)最终得分为余下下四位评委的平均分。 要求:所有评委的一次打分情况由用户输入,并存放于元组之中,使得评分数据不能修改。
以下是Python实现代码:
```python
# 获取去掉最高分和最低分后的分数列表
def get_scores(scores):
sorted_scores = sorted(scores) # 排序
min_score = sorted_scores[0]
max_score = sorted_scores[-1]
if min_score == max_score: # 处理有相等最高分或最低分的情况
for s in sorted_scores[1:-1]:
if s != min_score:
min_score = s
break
for s in sorted_scores[-2:0:-1]:
if s != max_score:
max_score = s
break
else: # 正常情况下去掉最高分和最低分
min_score = sorted_scores[1]
max_score = sorted_scores[-2]
return sorted_scores[1:-1], min_score, max_score
# 获取最终得分
def get_final_score(scores):
scores, min_score, max_score = get_scores(scores)
return sum(scores) / len(scores)
# 主程序
if __name__ == '__main__':
scores = tuple(map(float, input("请输入十位评委的分数,用空格隔开:").split()))
final_score = get_final_score(scores)
print("最终得分为:{:.2f}".format(final_score))
```
其中,`get_scores`函数用于获取去掉最高分和最低分后的分数列表、最低分和最高分;`get_final_score`函数用于计算最终得分;主程序中先输入十位评委的分数,再调用`get_final_score`函数计算最终得分并输出。注意,输入的分数需要转换为浮点数并存放于元组之中,以避免被修改。
学校举办歌唱比赛,邀请10位评委为参赛选手打分。编程计算选手的最后得分,分数计算方法如下: (1)去掉一个最低分(有相等最低分,则去掉其中1个) (2)去掉一个最高分(有相等最高分,则去掉其中1个) (3)最终得分为余下的8位评审的平均分。 提示:所有评委的打分情况由用户在一行输入,用逗号分隔,并存放于列表之中。
好的,根据你的要求,以下是一个可以实现此功能的 Python 程序:
```python
scores = input("请输入10位评委的打分,用逗号分隔:").split(",")
scores = [int(score) for score in scores] # 将字符串列表转换为整数列表
min_score = min(scores)
max_score = max(scores)
# 去掉一个最低分和一个最高分
scores.remove(min_score)
scores.remove(max_score)
# 计算最终得分
final_score = sum(scores) / len(scores)
print("最终得分为:{:.2f}".format(final_score))
```
程序首先让用户输入10位评委的打分,使用 `split()` 函数将输入的字符串按逗号拆分成一个字符串列表,然后使用列表推导式将字符串列表转换为整数列表。
接着,程序找出列表中的最低分和最高分,并使用 `remove()` 函数将它们从列表中去掉。最后,程序计算余下的8位评委的平均分,并使用字符串格式化将结果输出。注意,这里使用了 `len()` 函数获取列表的长度,以便进行平均数计算。
阅读全文