用python编写成绩等级分为A、B、C、D、E、F共6档,依次输入学生的学号,成绩等级。对各等级的人数进行统计并输出该等级的学号。输出格式为: 等级:人数 学号 学号输入格式: 输入若干行的学号,成绩等级,以#结束。(输入的学号假设唯一) 输出格式: 输出所有等级的人数,并在每个等级的下方输出所有该等级的学号,每个学号后面都有2个空格。具体格式见样例
时间: 2023-06-02 22:08:00 浏览: 384
空格分隔,每行只有一个学生的信息。其中,学号为字符串,成绩等级为字符,长度均不超过10个字符。
示例输入:
A001 A
A002 B
A001 C
A003 A
A002 A
A001 A
示例输出:
A: 3 A001 A003 A002
B: 1 A002
C: 1 A001
D: 0
E: 0
F: 0
代码如下:
grades = {'A':0, 'B':0, 'C':0, 'D':0, 'E':0, 'F':0} # 初始化各等级人数为0
students = {} # 学生信息字典
while True:
try:
info = input().split() # 输入学生信息
sno, grade = info[0], info[1] # 学号和等级
# 统计各等级人数
grades[grade] += 1
if grade not in students:
students[grade] = [sno] # 如果该等级的学生列表还没创建,就创建一个
else:
students[grade].append(sno) # 如果已经有该等级的学生列表,就往里加一个学生
except:
break
# 输出各等级人数和学号
for grade, count in grades.items():
print("{}: {} {}".format(grade, count, " ".join(sorted(students.get(grade, [])))))
阅读全文