質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

Python3 辞書型にデータを追加するプログラム 実行できない理由はなぜでしょうか?

gaijin
gaijin

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2回答

0評価

0クリップ

4閲覧

投稿2018/10/30 14:41

python3を学習している初心者です。
参考書の通りに打ち込んだのですが、実行すると

Traceback (most recent call last):
File "05_file.py", line 2, in <module>
raw_data = open_file.read()
AttributeError: 'str' object has no attribute 'read'

このようにエラーメッセージが出ます。
どうぞご教授をお願いしたいです。

下記のように定義いたしました。

open_file = ('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, '')

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))

調べたところopen_fileを定義している場所でなにか間違いがあるとのことですが、まだ理解できていません。

Takanori Suzuki:100,88,81
Takayuki Shimizukawa:77,94,85
Mitsuki Sugiya:80,52,99

このように教本通り打ち込み
point.txtというものを同じ階層に保存しております。

どうぞよろしくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。