编程题:现有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)