我正在开发一个小游戏函数,要求玩家输入一个标记“X”或“O”来表示它们。当我尝试使用while循环而不是while not循环时,无论您输入什么,它都会一直要求输入。我已经研究了一段时间,没有发现任何东西,这可能是一个非常简单的错误,所以一个简短的回复可以帮助我很多。谢谢大家!
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')发布于 2020-04-22 13:11:00
布尔逻辑:!(A v B) = (!A ^ !B)
v- or
^-和
!-不是
你在上面函数中的条件应该是:
while (marker != 'O' and player1 != 'X'):即and,而不是or。
发布于 2020-04-22 13:18:39
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')https://stackoverflow.com/questions/61357671
复制相似问题