公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
时间: 2023-06-11 08:07:39 浏览: 82
可以使用以下的 Python 代码来实现:
```python
scores = []
for i in range(7):
score = input('请输入第 {} 位考官的成绩(用空格分隔):'.format(i+1))
scores.append(list(map(int, score.split())))
for i in range(len(scores)):
scores[i].sort() # 排序
_sum = sum(scores[i][1:6]) # 去掉最高分和最低分,求和
average = _sum / 5 # 求平均值
print('第 {} 组的平均成绩为:{:.2f}'.format(i+1, average))
```
这段代码使用一个二维列表 `scores` 来存储所有考官的成绩。输入时,依次输入每个考官的成绩,使用 `split()` 方法将输入的字符串转换成整数列表,并将这个列表添加到 `scores` 中。
接下来,对每组成绩进行处理。首先对这组成绩从小到大进行排序,然后去掉最高分和最低分,求剩余分数的总和,并计算平均值。最后输出每组的平均成绩即可。
相关问题
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组最多7个有效分数(百分制),最少3个有效分数,去掉一个最高分和一个最低分,输出每组的平均成绩。 如果输入的数字不在正常范围(0-100)内,则当前数字不参与运算! 如果输入有效分数(0-100之间的分数)不足3个,则提示:有效打分不足3个
好的,这是一个比较典型的数据处理问题,可以使用 Python 来解决。以下是代码实现:
```python
def calculate_avg_score(scores):
"""
计算平均分数
"""
if len(scores) < 3:
return "有效打分不足3个"
else:
scores = [s for s in scores if 0 <= s <= 100]
if len(scores) < 3:
return "有效打分不足3个"
else:
return (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)
def process_scores():
"""
处理分数
"""
while True:
score_str = input("请输入成绩(最多7个有效分数,以空格分隔):")
scores = [int(score) for score in score_str.split() if score.isdigit()]
avg_score = calculate_avg_score(scores)
print("平均分数为:", avg_score)
if __name__ == '__main__':
process_scores()
```
你可以将以上代码保存为 `score.py` 文件,然后在命令行中运行 `python score.py` 来启动程序。每次输入一组成绩后,程序会自动计算并输出平均分数。如果输入的数字不在正常范围或有效分数不足3个,则会给出相应提示。
阅读全文