[Tutor] When I run this code, it just keeps repeating.
python-tutor@toddmaynard.com
python-tutor at toddmaynard.com
Sun Jul 31 04:10:33 CEST 2005
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
More information about the Tutor
mailing list