成绩分组输出人数和姓名

对学生的“高等数学”考试成绩进行分组输出
设计要求:
编写课程考试数据(包括姓名和成绩)
将成绩划分为a级(100-85分),b级(84-60分),c级(59-0分)。按照这几个等级不同的等级,把学生信息分别存在列表stua,stub 和stuc里。
输出每个分组的总人数和对应分组中的学生名单。
分组结束后,显示“运行结束”。

你题目的解答代码如下:

scorelist=[
    ["学生A",99],
    ["学生B",45],
    ["学生C",77],
    ["学生D",86],
    ["学生E",60],
    ["学生F",100],
    ["学生G",84],
    ["学生H",59],
    ["学生I",85]
]
stua=[]
stub=[]
stuc=[]
for n,s in scorelist:
    if 100 >= s >= 85:
        stua.append(n)
    elif 84 >= s >= 60:
        stub.append(n)
    if 59 >= s >= 0:
        stuc.append(n)
print('a组的总人数:',len(stua),'名单:', stua)
print('b组的总人数:',len(stub),'名单:', stub)
print('c组的总人数:',len(stuc),'名单:', stuc)
print('运行结束')

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

尝试使用如下代码:

scores={'A':95,'B':88,'C':58,'D':78,'E':69,'F':82,'G':100,'H':75}
stua=[(k,v) for k,v in scores.items() if 85<=v<=100]
stub=[(k,v) for k,v in scores.items() if 60<=v<=84]
stuc=[(k,v) for k,v in scores.items() if 0<=v<=59]
print(f'number of group a:{len(stua)}',[x[0] for x in stua])
print(f'number of group b:{len(stub)}',[x[0] for x in stub])
print(f'number of group c:{len(stuc)}',[x[0] for x in stuc])
print('运行结束')

如有帮助,请点击一下采纳按钮。

这样吗?

img

lst=[{'name':'张三','score':90},
     {'name':'李四','score':80},
     {'name':'王五','score':70},
     {'name':'赵六','score':60},
     {'name':'光头强','score':50}
     ##更多用户数据,题主自行加上
     ]
 
stua=[]
stub=[]
stuc=[]
 
for item in lst:
    score=item['score']
    if score>=85:
        stua.append(item)
    elif score>=60:
        stub.append(item)
    else:
        stuc.append(item)
 
print('运行结束\n')
print(f'A等有{len(stua)}人')
for item in stua:
    print(item['name'],end=' ')
print('\n')
print(f'B等有{len(stub)}人')
for item in stub:
    print(item['name'],end=' ')
print('\n')
print(f'C等有{len(stuc)}人')
for item in stuc:
    print(item['name'],end=' ')

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632