pytnon随机生成50个学生期中考试3科成绩(python,数学,英语),以列表输出,格式对齐;
以此数据为基础生成一个3科成绩不同成绩段人数的折线图
以此数据为基础生成一个3科成绩不同成绩段人数的折线图
不确定你说的格式对齐是指什么,还有成绩段的标准。以下代码供参考:
import matplotlib.pyplot as plt
from pylab import mpl
import random
mpl.rcParams['font.sans-serif']=['SimHei']
grades = ["<60","60-69","70-79","80-89","90-100"]
# 随机生成50个学生的成绩
legend = ["Python","数学","英语"]
py = random.choices(range(101),k=50)
ma = random.choices(range(101),k=50)
en = random.choices(range(101),k=50)
score = [py,ma,en]
# 初始化人数字典
a = ((0,0),(6,0),(7,0),(8,0),(9,0))
ppl = [dict(a),dict(a),dict(a)]
for g in range(3):
print(f"{legend[g]}的成绩为:")
print(score[g])
for i in score[g]:
if i>=90:
ppl[g][9] += 1
elif i>=60:
ppl[g][i//10] += 1
else:
ppl[g][0] += 1
# 生成折线图
for i in range(3):
plt.plot(grades,ppl[i].values(),label=legend[i])
plt.legend()
plt.xlabel("成绩段")
plt.ylabel("人数")
plt.show()