[Tutor] (no subject)

Kent Johnson kent37 at tds.net
Sat Mar 5 15:53:56 CET 2005


Jacob S. wrote:
> while 1:
>    play = raw_input("What is your choice? ")
>    if play in options.keys():        ## This makes sure that the user 
> input is one of our options

'if play in options' is preferable. options.keys() returns a list of keys that will be searched 
sequentially. options is a dict which supports fast direct lookup. So when you say 'if play in 
options.keys()' not only do you type more but you generate an intermediate list and use a slower 
form of search!

>        options[play]()                ## Call the function that is the 
> value of the key that is the choice the user made
>    else:                                    ## Say that the user input 
> is not one of your choices...
>        print "\nYou need to pick 1, 2 or 3 or hit enter to see choices\n"

But even better is to make the error message a default option:

def bad_choice():
   print "\nYou need to pick 1, 2 or 3 or hit enter to see choices\n"

Then the lookup becomes just
   options.get(play, bad_choice)()

Kent



More information about the Tutor mailing list