したがって、私はPython(および一般的なコーディング)にかなり慣れていないため、コード内の問題を見つけるために深刻な助けを借りることができます。基本的に、私は任意の数の学生名とそれに続く 4 つのテストスコアを含むファイルを開いています。だからこのようなもの:
John
78.0
80.0
69.0
98.0
Bob
40.0
78.0
77.0
89.0
etc
私のプログラムは、上記のファイルを読み取り、シェルに出力することを想定しています。
John: 78.0 80.0 69.0 98.0 Average: 81.25
Bob: 40.0 78.0 77.0 89.0 Average: 71.0
そして最後に、名前と平均を次のような新しいファイルに保存する必要があります。
John,81.25
Bob, 71.0
ただし、私のプログラムはこれを画面に出力します。
Mary
:76.0 89.0 82.0 100.0 Average: 86.75
Joey
:91.0 81.0 83.0 95.0 Average: 87.5
Sally
:92.0 93.0 90.0 97.0 Average: 93.0
そして、次のようなファイルを保存しています:
Mary
86.75Joey
87.5Sally
93.0
誰でもこれらの問題のいずれかを助けることができますか? 学校の課題なので、私の悪いコーディングを特定するだけで十分です。
これが私のコードの混乱です:
学生のスコアを含むファイルを作成する
scoresa = open('project3-scoresa.txt','w')
scoresa.write("Mary\n76\n89\n82\n100\nJoey\n91\n81\n83\n95\nSally\n92\n93\n90\n97")
scoresa.close()
def main():
averages = open("averages.csv","w")
file = input("Please enter the scores filename:")
try:
scores = open(file,'r')
print("File",file,"has been opened")
except IOError:
print("File",file,"could not be opened.")
scores = open(file,'r')
i = 0
for line in scores:
if i%5 == 0:
name = line
print(name.strip("/n"),":", end="")
j = 1
total = 0
else:
score = float(line)
print(score, end=" ")
total += score
ave = total/j
if j == 4:
print("Average:",ave)
Avestring = (name + str(ave))
averages.write(Avestring)
j += 1
i += 1
scores.close()
averages.close()
average = open("averages.csv","r")
for line in average:
print(line.strip("\n"))
main()