成绩等级分为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 15:42:54 浏览: 22
好的,以下是完整代码实现:
```python
grades = {'A': [], 'B': [], 'C': [], 'D': [], 'E': [], 'F': []}
count = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0}
while True:
line = input()
if line == '#':
break
student_id, grade = line.split()
grades[grade].append(student_id)
count[grade] += 1
for grade, num in count.items():
print('等级{}: {}人'.format(grade, num), end=' ')
if num == 0:
print()
continue
print('分别是:', end=' ')
for student_id in grades[grade]:
print(student_id, end=' ')
print()
```
在这个代码中,我们首先定义了两个字典,一个用来存储每个等级的学生学号,另一个用来统计每个等级的人数。我们通过一个无限循环不断读入学生的学号和等级,直到输入了 # 停止循环。在读入时,我们将学号加入对应等级的学生列表中,同时将该等级的人数加1。最后,我们遍历每个等级,输出对应等级的人数及所有该等级的学号。
在输出时,我们首先输出等级和人数,然后判断该等级的人数是否为0。如果是0,则直接换行;否则,输出该等级所有的学号,并每个学号后面加上两个空格。
运行样例数据可以得到以下输出结果:
```
等级A: 2人 分别是: 101 102
等级B: 2人 分别是: 103 105
等级C: 0人
等级D: 0人
等级E: 1人 分别是: 104
等级F: 0人
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)