Mike Hoy wrote: > hi > > my goal is to handle the problem of a user typing a letter or symbol > rather than a number I found something called try: and ValueError: > > Anyway this is what i attempted: > > #menuloop > menuChoice = 7 > printMenu() > while menuChoice != 0: > try: > menuChoice = int("1 = write | 2 = view | 0 = quit")) > except ValueError: > print "enter a number"
presumably you meant menuChoice = input("1 = write | 2 = view | 0 = quit"). input() evaluates the user's input similarly to what the interactive interpreter does, so if you type something like a&s you get a NameError - input() is trying to evaluate the expression 'a&s', it looks for a variable named 'a'. The solution is to use raw_input() which returns the user input as a string. Then you can do whatever validation you wish, e.g. menuChoice = int(raw_input("1 = write | 2 = view | 0 = quit")) which will raise an exception if the input is not a valid integer. Kent -- http://mail.python.org/mailman/listinfo/python-list