プロが教えるわが家の防犯対策術!

Pythonについてです。
何回見直しても分かりません
なにがおかしいのでしょうか?

「Pythonについてです。 何回見直して」の質問画像

質問者からの補足コメント

  • エラーです

    「Pythonについてです。 何回見直して」の補足画像1
      補足日時:2020/08/10 00:55

A 回答 (4件)

12行目、インデントが一字違う。


for文の最初の2行より内側かつforより外側のインデントは
あり得ない。
    • good
    • 0

あと、多分余計なお世話なんだけど、見えてる範囲で言うとこういう事やりたいのかしらん。



class Student:

 def __init__(self, name, data):
  self.name = name
  self.avg = sum(data)/len(data)

 def judge(self):
  if (self.avg >= 60):
   return "passed"
  else:
   return "failed"

data(date、になってっけど、スペルミスでしょ)はStudentクラス内のインスタンス変数を何も利用してないし、わざわざ外部からリストをデータとして与えて・・・ってぇのなら単一の関数作っても同じになっちゃうんで、あまり意味が無くなっちゃう。だからStudentクラスをインスタンス化する際に初期値として与えた方が良いでしょう。当然dataはリストになります。
Pythonのsum関数の使い方は上の通り。初期化の状態でavgと言うインスタンス変数を使って平均値を計算して持たせちゃいましょう。これでだいぶコードがスッキリします。
また、judge(jedgeって書いてるけど、これもスペルミスでしょ)はクラス内部で定義されたインスタンス変数(avg)を利用すべきです。これも外部から値を与えられる、ってカタチにするとクラス内でメソッドとして定義する意味合いが薄れます。
    • good
    • 0

IndentationError って書いてあるから


インデントがおかしい
というのをまず考えるべきでは.

date も変といえば変だけど.
    • good
    • 0

そもそも、sumはPython組み込みの関数名なんで、変数名に使うべきじゃないです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング