点数リストをファイルから読み込んで偏差値を計算しよう
前回は点数リストがプログラムの中に書かれていましたが、今回は点数リストを別ファイルにして偏差値を計算してみましょう。
ファイルの読み込みに関しては、こちらの記事を参照してください。
ファイルを読み込んで偏差値を計算するプログラム
読み込む点数リストファイルは、氏名と点数をカンマ(,)区切りで一覧にします。
今回使う点数リストファイルの内容は、以下のようになります。
1 2 3 4 5 |
A君,100 B君,0 C君,50 D君,75 E君,25 |
ファイルを読み込む部分以外は、前回と同じ内容になります。
ファイルから一行ずつ読み込んでいますが、改行コードをstrip()メソッドを使って削除しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
### インポート import statistics ### ファイルオープン file = open("math1-2.txt", "r") ### ファイル読み込み lines = file.readlines() ### ファイルクローズ file.close() ### 辞書初期化 dic = {} ### データを辞書に登録 for line in lines: name,point = line.split(",") dic[name] = int(point.strip()) ### 平均点 ave = statistics.mean(dic.values()) ### 標準偏差 val = statistics.pstdev(dic.values()) ### ヘッダ print("{} {} {}".format("氏名","点数","偏差値")) print("{} {} {}".format("----","----","------")) ### 各人の偏差値 for name,point in dic.items(): dev = 50+10*((point-ave)/val) print("{:<3} {:>4d} {:>6d}".format(name, point, round(dev))) |
プログラムを実行すると、以下のように出力します。
実行例
> python math1-2.py
氏名 点数 偏差値
---- ---- ------
A君 100 64
B君 0 36
C君 50 50
D君 75 57
E君 25 43