编写程序,用户输入学号、姓名和成绩(用逗号隔 开),按照降序输出学号、姓名和平均成绩。 例如: 请输入学号,姓名和成绩(用逗号隔开):1001,张三, 80 100 70 90 请输入学号,姓名和成绩(用逗号隔开):1002,李四, 请输入学号,姓名和成绩(用逗号隔开):1001,张三, 请输入学号,姓名和成绩(用逗号隔开):1002,李四, 请输入学号,姓名和成绩(用逗号隔开): 1002 张三 95 .0 1001 李四 75.0
时间: 2024-03-18 17:41:40 浏览: 97
编程实现:(1) 键入某组学生(共 10 人)的学号、姓名、组成原理考试 成绩、数据结构考试成绩、汇编语言考试成绩
好的,以下是 Python 代码实现:
```python
# 创建一个空字典用于存储学生信息
students = {}
while True:
# 输入学生信息
info = input('请输入学号,姓名和成绩(用逗号隔开):')
if info == '':
break
id, name, *scores = info.split(',')
# 计算平均成绩并保存到字典中
avg_score = sum(map(float, scores)) / len(scores)
students[id] = {'name': name, 'avg_score': avg_score}
# 按照平均成绩降序排序并输出结果
for id, info in sorted(students.items(), key=lambda x: x[1]['avg_score'], reverse=True):
print(f"{id} {info['name']} {info['avg_score']:.1f}")
```
上述代码中,我们首先创建一个空字典 `students` 用于存储学生信息。然后通过 `while` 循环不断输入学生信息,每次输入的信息包括学号、姓名和成绩,我们使用 `split` 函数将其拆分成对应的三部分,其中成绩部分使用了 `*` 表示剩余所有元素,这样可以处理成绩数目不定的情况。
接着,我们计算每个学生的平均成绩,并将其保存到 `students` 字典中。最后,我们使用 `sorted` 函数对 `students` 字典进行排序,排序的依据是学生的平均成绩,按照降序排列。在输出结果时,我们使用了格式化字符串和 `:.1f` 选项,确保输出平均成绩时只保留一位小数。
注意,这里的实现只是一个简单的示例,实际应用中可能需要更加严格的输入格式校验、异常处理等。
阅读全文