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()
无论我在原始输入中放入什么值,这个循环都会不断重复。为什么???
答案 0 :(得分:2)
因为guessed.append = guess
每次len(guess) == 1 and guess.isdigit() == False
为True
时都会引发错误,然后控件将转到except
块
这将再次重启循环。
如果您已在代码中的某处定义guessed
,那么我认为您可能想要这样做:
guessed.append(guess)
否则首先定义guessed
。
答案 1 :(得分:1)
每当您尝试执行guessed.append = guess
行时,您都会引发StandardError
,因此系统会告诉您return guess
永远不会执行。
要解决此问题,您应该在函数外部定义guessed
,并将行更正为guessed.append(guess)
。
另请注意,即使您修复了此错误,break
之后的行return guess
也永远不会被执行。