编写程序,为新生歌手赛统计评委分数,实现以下功能:在一行内输入多个评委分数,以逗号间隔,去掉一个最高分、一个最低分后,剩下评分的平均值为最后得分,保留1位小数。
时间: 2024-02-22 12:59:27 浏览: 23
好的,这个问题我可以回答。以下是一种实现方式,你可以参考一下:
```python
scores = input("请输入评委们的分数,用逗号隔开:")
score_list = scores.split(",") # 将输入的分数字符串转换成列表
score_list = [float(score) for score in score_list] # 将分数列表中的字符串转换成浮点数
score_list.sort() # 将分数列表从小到大排序
score_list = score_list[1:-1] # 去掉一个最高分和一个最低分
avg_score = sum(score_list) / len(score_list) # 计算剩下分数的平均值
print("最终得分为:{:.1f}".format(avg_score)) # 输出最终得分,保留1位小数
```
这个程序首先让用户输入评委们的分数,然后将输入的分数字符串转换成列表。接着,程序将列表中的字符串转换成浮点数,并将分数列表从小到大排序。接下来,程序去掉一个最高分和一个最低分,然后计算剩下分数的平均值。最后,程序输出最终得分,保留1位小数。
注意,这个程序没有进行输入合法性检查,如果用户输入的不是合法的数字字符串,程序会抛出异常。你可以根据需要添加输入合法性检查的代码。
相关问题
编写程序,为新生歌手赛统计评委分数,实现以下功能:在一行内输入多个评委分数,以逗号间隔,去掉一个最高分、一个最低分后,剩下评分的平均值为最后得分,保留1位小数
以下是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
```