user2280173
user2280173

Reputation: 11

Python: Why Does my while loop keep looping

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

Answers (2)

Ashwini Chaudhary
Ashwini Chaudhary

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

Chris Taylor
Chris Taylor

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

Related Questions