[Tutor] What's the invaild syntax? Error message and relative code supplied.

Nathan Pinno falcon3166 at hotmail.com
Mon Aug 1 01:38:33 CEST 2005


What the invalid syntax? Here is the error message:
SyntaxError: invalid syntax
  File "D:/Python22/grades.py", line 66
    which = which-1
        ^
SyntaxError: invalid syntax

Here is 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 "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: ")

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 == 9:
        break
    else:
        print "That's not a choice!"
print "Goodbye."

Thanks for the help in advance!
Nathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050731/af137cd2/attachment.htm


More information about the Tutor mailing list