我是python的新手,我正在尝试构建一个简单的井字游戏.当我从用户那里获取输入时,它会进入无限循环


def player_input():
player1=''
player2=''
while player1 != "X" or player1 !="O":
player1=input('Choose from X or O').upper()
if player1=='X':
player2 = 'O'
return (player1,player2)
elif player1=='O':
player2='X'
return (player1,player2)

当我运行时,它会进入无限循环。但是,当我将while循环更改为while not(player1 =="X" or player1=="O")时,我的代码运行良好。那么有人可以解释一下我的两个 while 循环之间的区别吗?

你的条件是错误的,你基本上想在 while 循环中,直到用户输入 X 或 O。因此,这意味着:

not (player1 == "X" or player1 =="O")

这可能会有点令人困惑,特别是如果您不熟悉布尔代数。基本上你有以下几点:

X and Y,所以not (X and Y)在逻辑上等价于not X or not Y。在您的情况下,您有:

not (player1 == "X" or player1 =="O")

这在逻辑上等效于:

player1 != "X" and player1 != "O"

如果你想了解更多,你可以阅读德摩根定律

相关内容

最新更新