昨日回答いただきこちらでcodeを変更いたしました。
ターミナルで実行しているのですがこのように
File "05_file.py", line 44, in <module> evaluation = evaluation_dict[student_name] KeyError: 'Takanori Suzuki'
とエラーが出ます。
下記のように定義しております。
open_file = open('point.txt') raw_data = open_file.read() open_file.close() point_data = raw_data.splitlines() point_dict = {} for line in point_data: student_name, points_str = line.split(':') point_dict[student_name] = points_str score_dict = {} for student_name in point_dict: point_list = point_dict[student_name].split(',') subject_number = len(point_list) total = 0 for point in point_list: total = total + int(point) average = total / subject_number score_dict[student_name] = (total, average, subject_number) evaluation_dict = {} for student_name in score_dict: score_data = score_dict[student_name] total = score_data[0] average = score_data[1] subject_number = score_data[2] excellent = subject_number * 100 * 0.8 good = subject_number * 100 * 0.65 if total >= excellent: evaluation = 'Excellent' elif total >= good: evaluation = 'Good' else: evaluation = 'Bad' evaluation_dict[student_name] = evaluation file_name = 'evaluation.txt' output_file = open(file_name, 'w') for student_name in score_dict: score_data = score_dict[student_name] total = score_data[0] evaluation = evaluation_dict[student_name] text = '[{}] total: {}, evaluation: {}\n'.format(student_name, total, evaluation) output_file.write(text) output_file.close() print('評価結果を{}に出力しました'.format(file_name))
保存ファイルには下記のように
入力しております。
Takanori Suzuki:100,88,81 Takayuki Shimizukawa:77,94,85 Mitsuki Sugiya:80,52,99
独学にて学んでおります。
どうぞご教授いただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/31 13:39