想问一道python问题,求解答!

我想要达到的结果

编程题:现有100个学生成绩,成绩为整数(0-100),要求实现按等级统计各等级的人数并输出统计结果:其中分为五个等级,90分以上为优秀;8089分为良好;7079分为中等;60~69分为及格;60分以下为不及格。

实现步骤如下:

1、随机数产生100个学生成绩,放入一个列表中

2、对列表所有成绩进行分等级统计,统计结果放到字典中

3、输出字典中的统计结果

使用列表解析式,计数函数,遍历字典键值对。

import random
 
a = [random.randint(0,100) for i in range(100)]
b=list(map(lambda x :"优秀" if x>=90 else "良好" if x>=80 else "中等" if x>=70 else "及格" if x>=60 else "不及格",a))
g=["优秀","良好","中等","及格","不及格"]
c=[b.count(y) for y in g]
out = {k:v for k,v in zip(g,c)}
for k,v in out.items():
    print(k,":",v)

如有帮助或启发,请点击采纳按钮。


import random

a = [random.randint(0,100) for i in range(100)]
outk = {}
for i in a:
    if i>=90:
        if outk.get("优秀"):
            outk["优秀"]+=1
        else:
            outk["优秀"] = 1
    elif i>=80:
        if outk.get("良好"):
            outk["良好"]+=1
        else:
            outk["良好"] = 1
    elif i>=70:
        if outk.get("中等"):
            outk["中等"]+=1
        else:
            outk["中等"] = 1
    elif i>=60:
        if outk.get("及格"):
            outk["及格"]+=1
        else:
            outk["及格"] = 1
    elif i>=60:
        if outk.get("不及格"):
            outk["不及格"]+=1
        else:
            outk["不及格"] = 1
for k,v in outk.items():
    print(k,v)

有帮助请点一下右上角的采纳,谢谢

这边可以给您一点建议
1.首先定义一个json数组,json分成五个分别保存五个等级,保存数据格式如下,成绩和对应的输入时的下标
{
cj:'',
idx:''
grade:A
}
2.循环输入语句,判断输入数字是对应哪个等级,在进行添加到对应保存的json里面
3.输出json即可
如果有帮助请点个采纳
3.输出json既可以

想问楼主解决了吗,我也想知道怎么做


import random
r = []
for i in range(100):
    r.append(random.randint(0,100))
d = {}
for v, i in enumerate(r):
    if i<60:
        d[v+1] = '不及格'
    elif 60<=i<70:
        d[v+1] = '及格'
    elif 70<=i<80:
        d[v+1] = '中等'
    elif 80<=i<90:
        d[v+1] = '良好'
    else:
        d[v+1] = '优秀'
print(d)

img