学校举办歌唱比赛,邀请了十位评委为选手打分。十位评委的分数在列表list1中存放,list1=[78,91,80,90,80,76,85,72,88,83]。请编写程序,去掉一个最高分和一个最低分,求剩下8个分数的平均分并输出。
时间: 2023-07-31 08:14:06 浏览: 45
可以按照以下步骤解决该问题:
1. 使用 `min()` 函数找到列表中的最小值,并使用 `max()` 函数找到列表中的最大值。将它们从列表中删除。
2. 使用 `sum()` 函数对列表中的所有分数求和。
3. 计算剩下分数的平均值,即将步骤2中求和结果除以剩下的分数数量。
4. 使用 `print()` 函数输出平均分数。
下面是实现该程序的代码:
```python
list1 = [78,91,80,90,80,76,85,72,88,83]
# 找到最高分和最低分,并从列表中删除
list1.remove(max(list1))
list1.remove(min(list1))
# 计算平均分数
avg = sum(list1) / len(list1)
# 输出平均分数
print("剩下8个分数的平均分为:", avg)
```
运行结果:
```
剩下8个分数的平均分为: 83.25
```
相关问题
学校进行歌唱比赛。每位选手演唱完毕后,由十位评委打分(分数为整数,满分100分)。 评分规则是,去掉一个最高分,去掉一个最低分,计算其他八位评委的平均分。 输入格式: 在一行中,输入十位评委给出的分数,空格隔开。 输出格式: 去掉一个最高分,去掉一个最低分,计算其他八位评委的平均分。结果保留一位小数。
以下是本题的 Python 代码实现:
```python
scores = list(map(int, input().split())) # 输入评委给出的分数,转换为整数列表
scores.remove(max(scores)) # 去掉一个最高分
scores.remove(min(scores)) # 去掉一个最低分
avg_score = sum(scores) / len(scores) # 计算其他八位评委的平均分
print('%.1f' % avg_score) # 输出结果,保留一位小数
```
解释一下代码的思路:
首先,我们用 `list(map(int, input().split()))` 读入一行评委给出的分数,然后将其转换为整数列表。
接下来,我们使用 `remove()` 方法分别去掉一个最高分和一个最低分,可以使用 `max()` 和 `min()` 函数得到列表中的最大值和最小值,然后使用 `remove()` 方法删除。
最后,我们计算剩下八位评委的平均分,即将分数列表求和后除以评委人数(即列表长度),并使用 `print()` 函数输出结果,保留一位小数(使用字符串格式化语法 `%.1f`)。
pythong歌唱比赛评委打分
以下是Python歌唱比赛评委打分的例子:
1.筛选出图片文件名列表中的所有图片文件:
```python
def any_true(predicate, sequence):
return True in map(predicate, sequence)
list_dir = ['a.py', 'b.jpg', 'c.gif', 'd.map', 'e.png', 'f.jpg', 'k.txt', 'f.gif', 'h.png', 'm.docx']
pic_ext = ('.jpg', '.gif', '.png')
pics = [img for img in list_dir if any_true(img.endswith, pic_ext)]
print(pics)
```
2.对评委打分进行处理并计算平均分:
```python
scores = [9.9, 9.2, 8.1, 9.7, 10, 8.3, 8.6, 9.5, 8.4]
scores.sort()
min, *sco, max = scores
ave = sum(sco) / len(sco)
print(round(ave, 1)) # 输出:9.1
```