【发布时间】:2022-01-05 15:58:08
【问题描述】:
我正在编写一个虚构的报告:
- 计算平均成绩
- 打印一张相似度分数的小图表,并在适用的情况下列出接受调查的学生。
数据表格
数据表单中的输入是这样设置的:
StudentA___5 6 7 4 5 6
5=20=22=10=2=0=0=1=0=1;StudentB, StudentC
StudentB___7 8 6 6
2=30=15=8=4=3=2=0=0=0;
在第一行计算最终成绩。所有等级的权重相同,大于等于 5.5 且小于 6 的等级记为 6。否则,如果尚未四舍五入,则将其四舍五入到最接近的一半。
在第二行中,用 '=' 分隔的 10 个数字和用 ',' 分隔的 0 个或多个名称
- 前 10 个数字是相似度分数,表示以 10% 的步长与当前节目的某个百分比匹配的节目数量。这意味着第一个数字表示 1%-10% 的匹配,最后一个数字表示 91%-100% 的匹配。
由于这不是很可读,教授想要一个根据这些规则的简单图表:
- 如果匹配项为零,则显示下划线:_
- 如果少于 20 个匹配项,则显示减号:-
- 如果有 20 个或更多匹配项,则显示插入符号:∧
分号后的学生姓名为最后3个类别中匹配的学生姓名。这些学生的名字应该印在图表下方。如果没有匹配项,程序应打印“未找到匹配项”。
我想要的报告输出
StudentA has an average of 6-
-^^--__-_-
StudentB
StudentC
StudentB has an average of 7.0
-^-----___
No matches found
我的代码
我已经有了计算平均成绩的代码
import sys
for line in sys.stdin.readlines():
split = line.split("_")
name = split[0]
grade = split[-1].split(" ")
grade2 = [float(x) for x in grade]
average = "%.1f" % round(sum(grade2) / len(grades2), 2)
if average == "5.5":
average = average + 0.5, "-"
else:
pass
print(str(name) + "has an average grade of " + str(average))
但我对如何开始使用图形函数并没有太多线索。
【问题讨论】: