greatest and least of these...

Shawn Minisall trekker182 at
Tue Oct 23 17:56:33 CEST 2007

I just wrote a program to let the user input a series of whole numbers 
and tell them which is least and which is greatest based off of a menu.  
However, the menu isn't kicking in after they pick a number.  I included 
a while statement for a loop just for the menu and compared it to my 
other programs that have a similar setup and are working, but I'm 
stumped.   Here's the program...

def main():

    #define and initialize variables
    #choice as int
    choice = 0
    #number as int
    number = 0


    #Menu loop
    while choice != 2:
        #display menu
        print "Please choose from the following menu: "
        print "1. Enter a number"
        print "2. Exit"
        #prompt user for their menu choice
        choice = input("Enter your choice here: ")
        #if statements to determine which choice
        if choice == 1:
            nums = []
            while number >=0:
                number = input("Please enter a number.")

        elif choice == 2:
            print "Have a great day!"

            if len(nums) > 0:
                print "The smallest number that you entered was:",min(nums)
                print "The largest number that you entered was:",max(nums)
            print "Invalid selection.  Enter either one or two."

Also, if they quit the program with choice #2 and entered numbers, it 
should display the greatest and least of them.  If they just started and 
didn't enter anything and want to quit, I get an error message saying 
UnboundLocalError: local variable 'nums' referenced before assignment.  
Isn't the if statement supposed to keep python from going there since if 
they didn't enter any input, the length of the list should just be zero. 

More information about the Python-list mailing list