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',
    print
    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',
    print
 
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
            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

Reply via email to