[Tutor] Please critique my Fraq.py

Dick Moores rdm at rcblue.com
Sun Jul 25 11:29:33 CEST 2004


I've had various responses to my request for a critique of my Frac.py (I 
mispelled it as Fraq.py in the subject header--must have had Iraq on my 
mind.)

Before I begin to try to implement your valuable suggestions for Frac.py, 
I'd like to try again for a response to a specific question I asked in 
that post:

In Frac.py I wanted to give the user a chance to quit at any prompt (and 
have the program close smoothly), by entering a "q" or an "x".  I did 
this by the statement,

if answer in ["q", "x"]:
     break

The problem with this is that it only breaks out of the inner loop. I 
have to repeat this statement in the outer loop.

So I'm asking if there's a better way. Raising an exception doesn't do 
it. Is there a way (other than mine) to enable the user to quit smoothly 
when he's inside a loop which is inside a loop?

Here's a silly game/test script I wrote to try to illustrate my question:
"""
print "This is an appropriate response test."
print "Enter q or x to give up."
while True:
     while True:
         answer = raw_input("How are you today: ")
         if answer == "x":
             print "Give up? O.K., you can try again tomorrow."
             break
         elif answer != "Fine, thank you. And you?":
             print "C'mon. That's dumb. Try again."
             continue
         else:
             print "Congratulations! You passed the test!"
             break
     break
""
At two points in the inner loop I've got a break. But I need another at 
the end of the outer loop to get out smoothly.

Thanks,

Dick Moores



More information about the Tutor mailing list