学校の課題でこうゆうのを出されました。
仕様書
・プログラム名:seiseki.py
・学生名、数学、英語、国語の点数を入力
・複数の学生データを入力する
・学生名に end が入力されたら終了
・成績順(合計点の昇順)に出力
・出力結果は、画面とファイルに出力
・出力ファイル名:students.txt
理想の出力結果
学生名を入力してください->伊藤
数学の点数を入力してください->80
英語の点数を入力してください->90
国語の点数を入力してください->70
・
・複数の学生データを入力
・
学生名を入力してください->end
成績順位
1 位 伊藤 240 点
2 位 太田 220 点
3 位 中島 210 点
4 位 阿部 180 点
5 位 武田 160 点
自分の方では学生名に end が入力されたら終了まではできたのですが、並び替え以降で躓いています。
並び替えのほうではsortやrankを使いましたがうまく作動島しませんでした。
皆さんの知識を貸していただけると助かります。
f = open('students.txt', encoding='utf-8')
while True :
seito = input('生徒名を入力してください->')
if seito == "end": break
f.close()
math = int(input('数学の点数を入力してください->'))
english = int(input('英語の点数を入力してください->'))
japanese = int(input('国語の点数を入力してください->'))
goukei = math+english+japanese
fw = open('students.txt', 'a', encoding='utf-8')
student = seito + ' ' + str(goukei) + '点' + '\n'
fw.write(student)
fw.close()
f = open('students.txt', 'a', encoding='utf-8')
fw.sort()
f.close()
f = open('students.txt', encoding='utf-8')
str1 = f.read()
print(str1)
f.close()
回答1件
あなたの回答
tips
プレビュー