Python:为什么我的while循环保持循环

时间:2013-05-30 22:17:41

标签: python loops

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()

无论我在原始输入中放入什么值,这个循环都会不断重复。为什么???

2 个答案:

答案 0 :(得分:2)

因为guessed.append = guess每次len(guess) == 1 and guess.isdigit() == FalseTrue时都会引发错误,然后控件将转到except块 这将再次重启循环。

如果您已在代码中的某处定义guessed,那么我认为您可能想要这样做:

guessed.append(guess)

否则首先定义guessed

答案 1 :(得分:1)

每当您尝试执行guessed.append = guess行时,您都会引发StandardError,因此系统会告诉您return guess永远不会执行。

要解决此问题,您应该在函数外部定义guessed,并将行更正为guessed.append(guess)

另请注意,即使您修复了此错误,break之后的行return guess也永远不会被执行。