成绩等级分为A、B、C、D、E、F共6档,依次输入学生的学号,成绩等级。对各等级的人数进行统计并输出该等级的学号。输出格式为: 等级:人数 学号 学号 输入格式: 输入若干行的学号,成绩等级,以#结束。(输入的学号假设唯一) 输出格式: 输出所有等级的人数,并在每个等级的下方输出所有该等级的学号,每个学号后面都有2个空格。具体格式见样例 输入样例: 101 A 102 A 103 B 104 E 105 B # 输出样例: 等级A: 2人 分别是: 101 102 等级B: 2人 分别是: 103 105 等级C: 0人 等级D: 0人 等级E: 1人 分别是: 104 等级F: 0人 代码长度限制
时间: 2024-03-14 08:45:31 浏览: 121
下面是 Python 代码实现,注意要按照题目输出格式进行输出:
```python
def count_grades():
grade_dict = {'A': [], 'B': [], 'C': [], 'D': [], 'E': [], 'F': []} # 初始化各等级的学号列表
while True:
input_str = input().strip()
if input_str == '#':
break
else:
student_id, grade = input_str.split()
grade_dict[grade].append(student_id) # 将学号添加到对应等级的列表中
for grade in ['A', 'B', 'C', 'D', 'E', 'F']:
student_list = grade_dict[grade]
print("等级{}: {}人".format(grade, len(student_list)).ljust(16), end=' ')
if len(student_list) == 0:
print()
else:
print("分别是:", end='')
for student_id in student_list:
print(student_id.ljust(4), end=' ')
print()
# 测试
count_grades()
```
输入示例:
```
101 A
102 A
103 B
104 E
105 B
#
```
输出示例:
```
等级A: 2人 分别是: 101 102
等级B: 2人 分别是: 103 105
等级C: 0人
等级D: 0人
等级E: 1人 分别是: 104
等级F: 0人
```
阅读全文