在下面的代码中使用 'while not' & != 的区别,使用 'while not' 正确执行代码,如下面的类型 2,而 != 只是一个无限循环?

Difference in using 'while not' & != in below code, using 'while not' executes code correctly as in type 2 below, with != its just a infinite loop?

----------------类型 1 开始---------------------

def player_input():

    marker = ''
    while (marker != 'X' or marker != 'O'):
        marker = input('please make a selection X or O').upper()

    if marker == 'X':
        return ('X' , 'O')
    else:
        return ('O' , 'X')

----------------类型1结束--------------------

----------------类型 2 开始---------------------

def player_input():

    marker = ''
    while not (marker == 'X' or marker == 'O'):
        marker = input('please make a selection X or O').upper()

    if marker == 'X':
        return ('X' , 'O')
    else:
        return ('O' , 'X')

----------------类型2结束--------------------

这不是同一个逻辑。在第一个定义中,您正在测试

  1. 输入不为0;或
  2. 输入不是 X

根据定义,其中一个总是正确的。如果输入是 O,它就不可能是 X,反之亦然。

你想要的逻辑可能是

while (marker != 'X' and marker != 'O'):