我正在形成一個虛構的報告:
- 計算平均成績
- 列印一張相似度分數的小圖,如果適用,列出接受調查的學生。
資料表
資料表單中的輸入設定如下:
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 AND <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))
但是我對如何開始使用圖形函式沒有太多線索。
uj5u.com熱心網友回復:
也許這會有所幫助。
datas = [
('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;'),
]
def print_graph(similarity_scores):
graph = []
for sim_score in similarity_scores:
if sim_score >= 20:
graph.append('^')
elif sim_score > 0:
graph.append('-')
else:
graph.append('_')
print(''.join(graph))
def get_avg_grade(grades):
avg_grade = sum(grades) / len(grades)
mod = avg_grade % 1
if mod == 0:
sign = ''
elif mod >= 0.5:
sign = '-'
else:
sign = ' '
return round(avg_grade), sign
for data in datas:
name, *_, grades_str = data[0].split('_')
grades = [float(grade) for grade in grades_str.split()]
avg_grade, sign = get_avg_grade(grades)
print(f'{name} has an average grade of {avg_grade}{sign}')
sim_scores_str, names = data[1].split(';')
sim_scores = [int(s) for s in sim_scores_str.split('=')]
print_graph(sim_scores)
if names:
for name in [n.strip() for n in names.split(',')]:
print(name)
else:
print('No matches found.')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368706.html
上一篇:將字串插入到R中的URL中間
下一篇:難以在R中擬合分段線性資料
