Python 当尝试从While not循环转换为While循环时,While循环未中断
我正在开发一个小游戏函数,要求玩家输入一个标记“X”或“O”来表示它们。当我尝试使用while循环而不是while not循环时,结果是无论您输入什么,都会不断请求输入。我已经研究了一段时间,没有发现任何东西,这可能是一个非常简单的错误,所以一个简短的答复可以帮助我很多。谢谢大家Python 当尝试从While not循环转换为While循环时,While循环未中断,python,Python,我正在开发一个小游戏函数,要求玩家输入一个标记“X”或“O”来表示它们。当我尝试使用while循环而不是while not循环时,结果是无论您输入什么,都会不断请求输入。我已经研究了一段时间,没有发现任何东西,这可能是一个非常简单的错误,所以一个简短的答复可以帮助我很多。谢谢大家 def player_input(): marker='' while (marker != 'X' or marker != 'O'): marker = input('Choose
def player_input():
marker=''
while (marker != 'X' or marker != 'O'):
marker = input('Choose your marker ').upper()
if marker == 'X':
return ('X','O')
else:
return ('O','X')
def player_input():
marker = ''
while not (marker == 'X' or marker == 'O'):
marker = input('Player 1: Do you want to be X or O? ').upper()
if marker == 'X':
return ('X', 'O')
else:
return ('O', 'X')
布尔逻辑:!(A v B)=(!A^!B)
v-或
^-及
!-不是
上功能中的条件应为:
while (marker != 'O' and player1 != 'X'):
i、 例如,
和
,而不是或
你的两个表达式是不等价的。很好!非常感谢。
Let's split into pieces
(marker != 'X' or player1 != 'O')
If we input 'X' then :
marker != 'X' -> 'X' != 'X' -> False
player1 != 'O' -> 'X' != 'O' -> True
(marker != 'X' or player1 != 'O') -> (False or True)
The output will be True
not (marker == 'X' or marker == 'O')
marker == 'X' -> 'X' == 'X' -> True
marker == 'O' -> 'X' == 'O' -> False
(marker == 'X' or marker == 'O') -> (True or False)
True
and not will make it to be False
If you want to make it work it should be :
not (marker == 'X') or not (marker == 'O')