わかりました、このトピックが何度か取り上げられていることは知っていますが、私が見たものはどれも役に立ちません. タイトルにエラーが表示されますが、エラーを修正する方法がわかりません。これが私のコードです:
def loadRecords():
f = open("stu.txt", "r")
students = f.readlines()
f.close()
return students
def addStudent():
n = input("Enter student's name: ")
ex1 = input("Enter Exam 1 grade: ")
ex2 = input("Enter Exam 2 grade: ")
ex3 = input("Enter Exam 3 grade: ")
return n + " " + ex1 + " " + ex2 + " " + ex3 + "\n"
def displayStudents(students):
for record in students:
n, ex1, ex2, ex3 = record.split(",")
ex1 = int(ex1)
ex2 = int(ex2)
ex3 = int(ex3)
print("%-10s %5s %5s %5s" % (n, ex1, ex2, ex3))
def displayAvg(students):
n = 1
for record in students:
n, ex1, ex2, ex3 = record.split(",")
ex1 = int(ex1)
ex2 = int(ex2)
ex3 = int(ex3)
avg = (ex1 + ex2 + ex3) / 3
print("%-10s %5s" % (n, round(avg, 1)))
n += 1
def saveRecords(students):
f = open("stu.txt", "w")
f.writelines(students)
f.close
def main():
students = loadRecords()
while True:
print("""
Program Options.
1.) Display all contacts
2.) Create new contact
3.) Display Averages
4.) Save and exit
""")
option = input("Enter 1, 2, or 3: ")
print()
if option == "1":
displayStudents(students)
elif option == "2":
newRecord = addStudent()
students.append(newRecord)
elif option == "3":
displayAvg(students)
elif option == "4":
saveRecords(students)
break
else:
print("Not happening")
main()
受け取ったエラーは次のとおりです。
Traceback (most recent call last):
File "C:/Python33/Program 4/pro4.py", line 65, in <module>
main()
File "C:/Python33/Program 4/pro4.py", line 53, in main
displayStudents(students)
File "C:/Python33/Program 4/pro4.py", line 16, in displayStudents
n, ex1, ex2, ex3 = record.split(",")
ValueError: need more than 1 value to unpack
これが私が使用しているファイルです。コードを実行する場合はメモ帳を使用してください。
sam wilson,98,80,73
sue green,92,98,74
sue adams,89,89,92
ron harris,90,87,100
linda tyler,76,72,88
dave smith,72,91,75
steve davis,88,92,84