secret_word = "hello"
guess = ""
def get_guess():
guess = input("Guess: " )
if guess.isalpha() is not True:
print("Please input a letter")
get_guess()
if len(guess) > 1:
print("Please input a single letter!")
get_guess()
guess = guess.lower()
print(guess)
get_guess()
上面的学校项目代码,当到达“打印(猜测)”行时,将打印所有先前的内容。
例如,输入链“3”“2”“ww”“a”将导致3,2,并且ww在接受a之前被拒绝。然而,一旦到达“打印(猜测)”,它将按顺序打印
a WW 2 3
有什么想法吗?
为了停止当前函数执行并推迟递归调用,您必须使用关键字
return
,如下所示:
secret_word = "hello"
guess = ""
def get_guess():
guess = input("Guess: " )
if guess.isalpha() is not True:
print("Please input a letter")
return get_guess()
if len(guess) > 1:
print("Please input a single letter!")
return get_guess()
guess = guess.lower()
print(guess)
get_guess()
否则,在通过递归调用成功运行后,它将继续之前的运行。