此问题在此处已有答案:
Why does my recursive function return None?(4个答案)
已关闭
def login(log = 1):
con = input(f"{na} are you Ready for the game Yes/NO ")
if ((con == "Yes")or(con == "yes")or(con == "y")or(con == "Y")):
print("\nwelcome to The Game") # first time it will return true but recursive function call itself then it will return none
return True
elif(log == 3):
print("retry after long time")
else:
print("Retry again")
log = log + 1
login(log)
flag = login()
print(flag)
预期输出:flag = True
输出:flag = None
2条答案
按热度按时间5lwkijsr1#
非常接近,你只需要在递归调用中缺少一个return语句,这样,从它成功的时候开始,返回值就可以返回到原始调用,我在这里展示了。
字符串
如果你有任何问题,请告诉我。
正如@stephan在评论中指出的那样,这里还有另一个问题需要更多的解释:Why does my recursive function return None?
u3r8eeie2#
@BitsAreNumbersToo,你是正确的,但是当最后一次重试被触发时,你错过了另一次返回。
最后一个条件(当log = 3时)是只打印并返回None,这就是为什么您会收到None输出。
字符串
如果你有什么问题就告诉我