[Tutor] Re: Please critique my guessing game program.
Magnus Lyckå
magnus at thinkware.se
Fri Jul 16 22:59:14 CEST 2004
At 16:45 2004-07-16 +0100, Matt Smith wrote:
>Hi,
>I've changed the program further to account for the help and suggestions
>I've recieved. I think this version is structured in a more logical way
>and should also be impossible to crash through inputing the wrong answer.
>Please let me know what you think and if the program could be improved in
>anyway.
It seems redundant to use both "playagain" and "playagain"
>I have greatly enjoyed writing my first Python program.
I hope you will enjoy writing a lot more programs soon!
>playagainflag = 1
>while playagainflag == 1:
[snip]
> playagain = raw_input("Do you want to play again? (y/n) ")
> if playagain == "y" or playagain == "Y":
> playagainflag = 1
> else:
> playagainflag = 0
I'd just do...
playagain = 'y'
while playagain.lower() == 'y':
[snip]
playagain = raw_input("Do you want to play again? (y/n) ")
...and skip all the use of that flag variable.
Another solution which is seen fairly often in Python is to do
it like this:
while True:
[snip]
if raw_input("Do you want to play again? (y/n) ").lower() != 'y':
break
It might possibly be prettier to make that into...
while True:
[snip]
if stop_playing():
break
...and define stop_playing as a separate function with the raw_input
or whatever. But that really only makes sense if the rest of the
actual user interaction is removed from the logic as well.
--
Magnus Lycka (It's really Lyckå), magnus at thinkware.se
Thinkware AB, Sweden, www.thinkware.se
I code Python ~ The Agile Programming Language
More information about the Tutor
mailing list