编写程序,为新生歌手赛统计评委分数,实现以下功能:在一行内输入多个评委分数,以逗号间隔,去掉一个最高分、一个最低分后,剩下评分的平均值为最后得分,保留1位小数
时间: 2023-11-08 09:05:36 浏览: 93
以下是Python语言的代码实现:
```python
scores = input("请输入评委分数,以逗号间隔:")
score_list = scores.split(",") # 将输入的分数字符串按逗号分隔为列表
score_list = [float(score) for score in score_list] # 将列表中的字符串转换为浮点数
max_score = max(score_list)
min_score = min(score_list)
score_list.remove(max_score)
score_list.remove(min_score)
average_score = sum(score_list) / len(score_list)
print("最终得分为:{:.1f}".format(average_score))
```
程序会先要求用户输入评委分数,以逗号间隔。然后将输入的分数字符串按逗号分隔为列表,并将列表中的字符串转换为浮点数。接着计算最高分和最低分,从列表中去掉这两个分数,再计算剩下分数的平均值,最后输出最终得分,保留1位小数。
相关问题
编写程序,为新生歌手赛统计评委分数,实现一下功能:在一行内输入多个评委分数,以逗号隔开,去掉一个最高分,一个最低分后,剩下评分的平均值为最后得分,保留
两位小数输出。
以下是 Python 代码实现:
```python
score_str = input("请输入评委分数,以逗号隔开:")
score_list = score_str.split(",") # 将字符串转换为列表
score_list = [float(score) for score in score_list] # 将列表中的元素转换为浮点数
# 去掉一个最高分和一个最低分
score_list.remove(max(score_list))
score_list.remove(min(score_list))
avg_score = sum(score_list) / len(score_list)
print("最终得分为:{:.2f}".format(avg_score))
```
运行示例:
```
请输入评委分数,以逗号隔开:9.5, 8.7, 9.0, 9.8, 8.9
最终得分为:9.07
```
请编写程序,要求用户输入一个选手的十个得分,求出该选手的最后得分,具体要求如下: 为丰富校园文化生活,学校拟组织一场歌手大赛,从参赛选手中选拔出十名相对突出的学生,授予“校园十大歌手”称号。比赛之中设置有评委组,每名选手演唱完毕之后会由评委组的十名评委打分。为保证比赛公平公正,防止作弊和恶意打分,计算得分时会先去掉最高分和最低分,再计算平均分。
好的,下面是 Python 代码实现:
```python
scores = input("请输入选手的十个得分(用逗号隔开):")
scores_list = scores.split(",") # 将输入的字符串转换为列表
scores_list = [int(score) for score in scores_list] # 将列表中的元素转为整数类型
# 去掉最高分和最低分
scores_list.remove(max(scores_list))
scores_list.remove(min(scores_list))
# 计算平均分
avg_score = sum(scores_list) / len(scores_list)
print("该选手的最终得分为:%.2f" % avg_score)
```
代码实现的具体步骤如下:
1. 首先让用户输入选手的十个得分,使用 `input()` 函数实现。
2. 将输入的字符串转换为列表,使用 `split()` 方法分割字符串,并将结果转换为列表。
3. 将列表中的元素转换为整数类型,使用列表推导式实现。
4. 去掉最高分和最低分,使用 `max()` 和 `min()` 函数获取最高分和最低分,然后使用 `remove()` 方法从列表中删除。
5. 计算平均分,使用 `sum()` 函数求和,再除以列表长度。
6. 使用格式化字符串输出最终得分,保留两位小数。
注意,这里假设用户输入的都是数字,如果输入的不是数字,会导致程序出错,需要加上错误处理的代码。