質問: pythonについてです。 何回見直しても分かりません なにがおかしいのでしょうか? pythonについてです。 何回見直しても分かりません なにがおかしいのでしょうか?
回答: あと、多分余計なお世話なんだけど、見えてる範囲で言うとこういう事やりたいのかしらん。 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)を利用すべきです。これも外部から値を与えられる、ってカタチにするとクラス内でメソッドとして定義する意味合いが薄れます。