我有一个简单的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)
答案 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)