Reputation: 11
def guess():
while True:
try:
guess = raw_input("Guess your letter")
if len(guess) != 1 or guess.isdigit() == True:
print "Please guess again"
if len(guess) == 1 and guess.isdigit() == False:
guessed.append = guess
return guess
break
except StandardError:
pass
print guess()
this loop keeps repeating no matter what value I put in the raw input. Why???
Upvotes: 0
Views: 490
Reputation: 250911
Because guessed.append = guess
wil raise an error every time len(guess) == 1 and guess.isdigit() == False
is True
and then the control will go to the except
block
which is going to restart the loop again.
If you've defined guessed
somewhere in your code then I think you probably wanted to do this:
guessed.append(guess)
Otherwise define guessed
first.
Upvotes: 2
Reputation: 47392
Every time you try to execute the line guessed.append = guess
you raise a StandardError
, so the line telling you to return guess
is never executed.
To fix it you should define guessed
outside the function, and correct the line to guessed.append(guess)
.
Also note that the line break
right after return guess
would never be executed even if you fixed this bug.
Upvotes: 1