变量在try语句python中丢失

时间:2016-02-20 05:26:08

标签: python try-catch

我有一个简单的try语句,我将变量分配给x,o或r(我所做的tic tac toe游戏)。如果给出了三个选项中的一个,则语句有效,但是,如果给出它的其他内容则表示它返回一个None对象。我不明白为什么它不会将变量重新分配给在第二个,第三个等上运行的新用户输入

def chooseLetter(name):
    try:
        letter = input('Hello %s, would you like to be X or O or a random letter choice ("r") ' %name)
        assert letter.lower() == 'x' or letter.lower()== 'o' or letter.lower() == 'r'
        return letter
    except AssertionError:
        print('please choose either X or O ')
        chooseLetter(name)  

1 个答案:

答案 0 :(得分:2)

问题是您没有在错误案例中返回值

def chooseLetter(name):
    try:
        letter = input('Hello %s, would you like to be X or O or a random letter choice ("r") ' %name)
        assert letter.lower() == 'x' or letter.lower()== 'o' or letter.lower() == 'r'
        return letter
    except AssertionError:
        print('please choose either X or O ')
        return chooseLetter(name)