Hey all,
I've seem to run into a jam while working on the exercise on file
I/O.
Here's the error:
Filename to save: university.txt
Traceback (most recent call last): File "D:\Python22\grades.py", line 99, in ? save_grades(students,filename) File "D:\Python22\grades.py", line 51, in save_grades out_file.write(x+","+max_points[x]+"\n") TypeError: sequence index must be integer And the code:
max_points = [25,25,50,25,100]
assignments = ['hw ch 1','hw ch 2','quiz ','hw ch 3','test'] students = {'#Max':max_points} def print_menu():
print "1. Add student" print "2. Remove student" print "3. Print grades" print "4. Record grade" print "5. Load Grades" print "6. Save Grades" print "9. Exit" def print_all_grades():
print '\t', for i in range(len(assignments)): print assignments[1],'\t', keys = students.keys() keys.sort() for x in keys: print x,'\t', grades = students[x] print_grades(grades) def print_grades(grades):
for i in range(len(grades)): print grades[i],'\t\t', def choice():
return int(raw_input("Menu Choice: ")) def school():
return raw_input("Student: ") def load_grades(students,filename):
in_file = open(filename, "r") while 1: in_line = in_file.readline() if in_line == "": break in_line = in_line[:-1] [students,max_points] = string.split(in_line,",") max_points[students] = grade in_file.close() def save_grades(students,filename):
out_file = open(filename, "w") for x in students.keys(): out_file.write(x+","+max_points[x]+"\n") out_file.close print "Grade Tracking Program."
while 1: print_menu() menu_choice = choice() if menu_choice == 1: print "Add student" name = school() students[name] = [0]*len(max_points) elif menu_choice == 2: print "Remove student" name = school() if students.has_key(name): del students[name] else: print "Student: ",name," not found." elif menu_choice == 3: print_all_grades() elif menu_choice ==
4:
print "Record Grade" name = school() if students.has_key(name): grades = students[name] print "Type in the number of the grade to record" print "Type in a 0 (zero) to exit" for i in range(len(assignments)): print i+1,' ',assignments[i],'\t', print_grades(grades) which = 1234 while which != -1: which = int(raw_input("Change which Grade: ")) which = which-1 if 0 <= which < len(grades): grade = int(raw_input("Grade: ")) grades[which] = grade elif which != -1: print "Invalid Grade Number" else: print "Student not found" elif menu_choice == 5: filename = raw_input("Filename to load: ") load_grades(students,filename) elif menu_choice == 6: filename = raw_input("Filename to save: ") save_grades(students,filename) elif menu_choice == 9: break else: print "That's not a choice!" print "Goodbye." What's the problem, and how is it fixed?
Thanks,
Nathan Pinno,
Crew, Camrose McDonalds and owner/operator of Woffee |
BEGIN:VCARD VERSION:2.1 N:Pinno;Nathan;Paul;Mr. FN:Pinno, Nathan Paul ORG:Woffee;Executive TITLE:Owner/operator TEL;CELL;VOICE:7806085529 ADR;WORK:;President/CEO LABEL;WORK:President/CEO ADR;HOME:;;Box 1783;Camrose;Alberta;T4V1X7;Canada LABEL;HOME;ENCODING=QUOTED-PRINTABLE:Box 1783=0D=0ACamrose, Alberta T4V1X7=0D=0ACanada X-WAB-GENDER:2 URL;HOME:http://falcon3166.tripod.com URL;WORK:http://falcon3166.tripod.com/Woffee.htm BDAY:19850221 EMAIL;PREF;INTERNET:[EMAIL PROTECTED] EMAIL;INTERNET:[EMAIL PROTECTED] EMAIL;INTERNET:[EMAIL PROTECTED] EMAIL;INTERNET:[EMAIL PROTECTED] REV:20050801T203918Z END:VCARD
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor