Python:输入X或O后while循环仍执行,求问题原因
问题原因分析
你的代码里while循环的条件表达式逻辑错误,导致无论输入X还是O,循环都会持续执行。
错误根源
Python中逻辑运算符or的左右两侧需要是完整的布尔判断表达式。你的代码里:
while response != 'X' or 'O':
会被Python解析为:
while (response != 'X') or ('O'):
而字符串'O'在布尔语境下属于真值(非空字符串都会被判定为True),所以不管response的值是什么,整个or表达式的结果永远是True,循环也就永远不会终止。
修正后的条件
正确的逻辑应该是判断response既不是X也不是O时才进入循环,需要用and连接两个判断:
while response != 'X' and response != 'O':
或者更简洁的写法(效果一致):
while response not in ('X', 'O'):
修正后的完整代码
def XorO(): response = input('Would you like to be X or O?') while response != 'X' and response != 'O': print("Please input either X or O") response = input('Would you like to be X or O?')
内容的提问来源于stack exchange,提问作者Adrus
相关产品推荐
相关产品推荐

