返回函数在某些递归后不返回任何内容,而不是我想要的returnig

时间:2019-01-22 03:40:18

标签: python-3.x

我想从玩家那里得到输入以在'X'和'O'之间进行选择,并希望我的函数返回该'X'或'O',以便我可以处理该值。但是我的函数无法正常工作对于第一次重复,它返回正确的值,但是对于下一个或更多个重复调用函数,它返回Null。 请帮助我。

首先我输入了错误的输入(例如C),然后更正了所需的输入'X'或'O'。根据我的说法,它应该根据输入返回'X'或'O',但返回空值。

def getPlayerLetter():
    userLetter = input("Do you want to be 'X' or 'O'? ")
    if userLetter == 'X' or userLetter == 'O':
        return userLetter
    else:
        print("Wrong choice.try again...")
        getPlayerLetter()

letter = getPlayerLetter()
print(letter)

我的输出。

Do you want to be 'X' or 'O'? C
Wrong choice.try again...
Do you want to be 'X' or 'O'? Y
Wrong choice.try again...
Do you want to be 'X' or 'O'? X
None

1 个答案:

答案 0 :(得分:2)

您需要return的{​​{1}}结果:

getPlayerLetter()

输出:

def getPlayerLetter():
    userLetter = input("Do you want to be 'X' or 'O'? ")
    if userLetter == 'X' or userLetter == 'O':
        return userLetter
    else:
        print("Wrong choice.try again...")
        return getPlayerLetter()

letter = getPlayerLetter()
print(letter)