我想确认输入是一个单独的字母。有没有办法返回第一个有效值,然后在输出先前的无效条目之前结束递归。
例如,如果第一个条目是' 4'第二个条目是' $',第三个条目是' a',我想只返回' a'而不是' 4'和' $'。
def check_guess(guess):
guess = str(guess)
if guess.isalpha() == True and len(guess) == 1:
return guess
else:
guess = raw_input("No special or multiple characters allowed. Reenter guess: ").lower()
check_guess(guess) #recursion
(这是一个简单的游戏,但希望更好地理解递归,而不是另一种编码方式)
答案 0 :(得分:0)
递归是处理用户输入的一种诱人但很差的方法。改为使用循环:
def get_guess():
while 1:
guess = raw_input("Guess? ")
if guess.isalpha() and len(guess) == 1:
return guess
print "Guess must be a single letter."