[Tutor] When I run this code, it just keeps repeating.
Nathan Pinno
falcon3166 at hotmail.com
Sun Jul 31 04:19:06 CEST 2005
Thanks Todd. Can you please look at my other messages that you haven't
answered, and see what's wrong with them, or what the answer is.
----- Original Message -----
From: <python-tutor at toddmaynard.com>
To: <tutor at python.org>
Sent: Saturday, July 30, 2005 8:10 PM
Subject: Re: [Tutor] When I run this code, it just keeps repeating.
> Looks like you are making some pretty good progress.
>
> The short answer to your question is that the menu & user input need to be
> inside the while loop. That way cal_opt has a chance to change value
> before
> it gets evaluated by the while loop again.
>
> Another comment - the global cal_opt is considered evil by many. Better
> would
> be:
>
> def cal():
> return int(raw_input("Option: "))
>
> print "Mini Calculator"
> print "By Nathan Pinno"
> print
>
> while cal_opt != 9:
> menu()
> cal_opt=cal()
>
> if cal_opt == 1:
> X = input("First number:" )
> Y = input("Second number:" )
> print X, "+", Y, "= ",X + Y
>
> ....
>
>
> Keep hacking away at it... you're making good progress.
>
> --Todd
>
>
> On Saturday 30 July 2005 09:55 pm, Nathan Pinno wrote:
>> When I run the following code it just keeps repeating. Here is a screen
>> shot showing what I mean: Mini Calculator
>> By Nathan Pinno
>>
>> CALCULATE MENU
>> 1) Add
>> 2) Subraction
>> 3) Multiplication
>> 4) Division w/o remainder
>> 5) Division with remaider
>> 6) Exponation
>> 7) Square roots
>> 9) Exit
>> Option: 5
>> First number:4
>> Second number:2
>> 4 / 2 = 2 R 0
>> First number:3
>> Second number:6
>> 3 / 6 = 0 R 3
>> First number:5
>> Second number:6
>> 5 / 6 = 0 R 5
>> First number:
>>
>> Here is the relevant code:
>> # This is a small calculator.
>> def menu():
>> print "CALCULATE MENU"
>> print "1) Add"
>> print "2) Subraction"
>> print "3) Multiplication"
>> print "4) Division w/o remainder"
>> print "5) Division with remaider"
>> print "6) Exponation"
>> print "7) Square roots"
>> print "9) Exit"
>>
>> def cal():
>> global cal_opt
>> cal_opt = int(raw_input("Option: "))
>>
>> print "Mini Calculator"
>> print "By Nathan Pinno"
>> print
>> menu()
>> cal()
>> while cal_opt != 9:
>> if cal_opt == 1:
>> X = input("First number:" )
>> Y = input("Second number:" )
>> print X, "+", Y, "= ",X + Y
>> elif cal_opt == 2:
>> X = input("First number:" )
>> Y = input("Second number:" )
>> print X, "-", Y, "= ",X - Y
>> elif cal_opt == 3:
>> X = input("First number:" )
>> Y = input("Second number:" )
>> print X, "*", Y, "= ",X * Y
>> elif cal_opt == 4:
>> X = input("First number:" )
>> Y = input("Second number:" )
>> if Y == 0:
>> print "Division by zero ot allowed!"
>> Y = input("Second number:" )
>> else:
>> print X, "/", Y, "= ",X / Y
>> elif cal_opt == 5:
>> X = input("First number:" )
>> Y = input("Second number:" )
>> if Y == 0:
>> print "Division by zero ot allowed!"
>> Y = input("Second number:" )
>> else:
>> print X, "/", Y, "= ",X / Y," R ", X % Y
>> elif cal_opt == 6:
>> X = input("First number:" )
>> Y = input("Power:" )
>> print X, "**", Y, "= ",X**Y
>> elif cal_opt == 7:
>> X = input("Number to find the square root of:" )
>> print "The square root of", X, " = ",X**0.5
>> else:
>> print "That's not an option. Try again."
>> menu()
>> cal()
>> print "Goodbye"
>>
>> How do I stop this, and make it go back to the main menu?
>>
>> Thanks in advance,
>> Nathan
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list