在下面的代码中使用 '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结束--------------------
这不是同一个逻辑。在第一个定义中,您正在测试
- 输入不为0;或
- 输入不是 X
根据定义,其中一个总是正确的。如果输入是 O,它就不可能是 X,反之亦然。
你想要的逻辑可能是
while (marker != 'X' and marker != 'O'):
----------------类型 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结束--------------------
这不是同一个逻辑。在第一个定义中,您正在测试
- 输入不为0;或
- 输入不是 X
根据定义,其中一个总是正确的。如果输入是 O,它就不可能是 X,反之亦然。
你想要的逻辑可能是
while (marker != 'X' and marker != 'O'):