2016-03-29 13 views
0

私はコーディングを作成しましたが、各人スコアの平均を見つけようとしましたが、他に何をすべきか分かりません。コードは動作しません:CSVファイル内にある3つの数字の平均を見つける

def average():#makes function 'average' 
print ("\nThe Average Score")#outputs the title 'The Average Score' 
for pupils in classScore: 
    pupil["total"] = (int(pupil["Pupil's Score 1"])+int(pupil["Pupil's Score 2"])+int(pupil["Pupil's Score 3"])) 
    pupil["average"] = (pupil["total"]//3) 
    print (pupil["Pupil's Name"]+pupil["average"]) 
average() 

をCSVファイルは、次のようにレイアウトされています登場エラーメッセージだった

Pupil's Name  Pupil's Score 1 Pupil's Score 2  Pupil's Score 3 
Joao     10     9      8 
Rebecca    7     6      5 
Snuffles    0     1      2 

Traceback (most recent call last): 


File "E:/Controlled Assesment Computing/Controlled Assesment/Task 3/Try 18.py", line 56, in <module> 
    average() 
File "E:/Controlled Assesment Computing/Controlled Assesment/Task 3/Try 18.py", line 53, in average 
    print (pupil["Pupil's Name"]+pupil["average"]) 
TypeError: Can't convert 'int' object to str implicitly 

誰が助けることができれば、それは次のようになりとても有難い。

+0

エラーメッセージが表示されますか?もしそうなら、私たちはそれが何を言っているのかを正確に知る必要があります。 –

+0

[OK]を私は、エラーメッセージ – Joao

+0

で質問を更新します[文字列をPythonで文字列に変換しますか?](http://stackoverflow.com/questions/961632/converting-integer-to-string-in-python)問題? –

答えて

1

メッセージは明確になります。

TypeError: Can't convert 'int' object to str implicitly 

あなたは文字列に番号をオンにする操作を行うには持っている必要があります。これを試してみてください:

print(pupil["Pupil's Name"]+str(pupil["average"])) 

あなたはこの方法を3人の生徒に限定して自分自身をやってしまいました。どんな数の生徒でも簡単に動作させることができます。

私はその平均的な方法から印刷することを勧めます。方法はあることをうまくやるべきです。

+0

私はお詫びしますが、私は非常にゆっくりと物事を理解する傾向があります。簡単な言葉であなた自身を繰り返すことができれば可能でしょうか? – Joao

+0

私はあなたが言ったようにしましたが、それは一人の人の名前とその平均を印刷しています。そしてこれは、生徒の名前とその平均の3つすべてを印刷する代わりに3回行います。 – Joao

+0

コードはあなたが尋ねたことをしています。 – duffymo

関連する問題