greatest and least of these...

Erik Jones erik at myemma.com
Tue Oct 23 13:10:13 EDT 2007


On Oct 23, 2007, at 10:56 AM, Shawn Minisall wrote:

> 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
>
>     #intro
>     print "WELCOME TO THE GREATEST AND LEAST NUMBER PROGRAM!"
>     print
>
>     #Menu loop
>     while choice != 2:
>         #display menu
>         print "Please choose from the following menu: "
>         print "1. Enter a number"
>         print "2. Exit"
>         print
>
>         #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:
>                 nums.append(number)
>                 number = input("Please enter a number.")

You're telling the script to continue asking for numbers until a non- 
positive number is entered.  Enter a negative number and you'll see  
your menu again.  What you probably want is to change this.

>
>
>         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)
>
>         else:
>             #invalid
>             print "Invalid selection.  Enter either one or two."
>             print
>
> 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.

The exception is because you're not ensure that nums is ever  
initialized.

Erik Jones

Software Developer | Emma®
erik at myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com





More information about the Python-list mailing list