python编写十大歌手打分排名程序,由十位评委打分,分数只能输入0~10,去掉一个最高分和最低分,得出最后分数
时间: 2024-11-26 14:22:38 浏览: 8
Python编写这样的程序可以分为以下几个步骤:
1. **创建数据结构**:
首先,我们可以使用列表或字典存储每位歌手的信息,包括姓名和评分列表。
```python
singers = {
'歌手1': [],
'歌手2': [],
# ... 其他9位歌手名
}
```
2. **获取用户输入**:
使用循环让每位评委为每位歌手打分,并将分数添加到对应歌手的列表里。
```python
for judge in range(10):
for singer, scores in singers.items():
score = int(input(f"评委{judge+1}给{singer}打分(0-10): "))
if 0 <= score <= 10:
scores.append(score)
else:
print("无效分数,已忽略")
```
3. **去除最高分和最低分**:
对于每个歌手的得分列表,我们需要找出最大值和最小值,然后移除这两个分数。
```python
for singer, scores in singers.items():
scores.sort()
scores.remove(max(scores))
scores.remove(min(scores))
```
4. **计算平均分**:
然后计算每位歌手的平均得分。
```python
final_scores = {}
for singer, cleaned_scores in singers.items():
final_scores[singer] = sum(cleaned_scores) / len(cleaned_scores)
```
5. **排序和打印结果**:
将最终得分按从高到低排序并显示。
```python
sorted_singers = sorted(final_scores.items(), key=lambda x: x[1], reverse=True)
for i, (singer, avg_score) in enumerate(sorted_singers, start=1):
print(f"{i}. {singer}: {avg_score}")
```
阅读全文