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

问题描述 投票:0回答: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')

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')

python-3.x loops input while-loop operators
1个回答
0
投票

这不是同一个逻辑。在第一个定义中,你是在测试是否有一个

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

根据定义,其中一个永远是真的。如果输入是O,就不可能是X,反之亦然。

你想拥有的逻辑可能是

while (marker != 'X' and marker != 'O'):
© www.soinside.com 2019 - 2024. All rights reserved.