Python 在while循环中组合OR语句

Python 在while循环中组合OR语句,python,python-2.7,while-loop,Python,Python 2.7,While Loop,我正在构建一个小函数,允许玩家在Tic-Tac-Toe游戏开始时选择他们的形状(选择X或O),出于某种原因,我在下面的代码中遇到了问题。while语句不适用于其中的OR语句。当我删除任一形状时,代码将运行!=“o”或形状!=“x”,但在while循环中使用这两个选项时,我从不逃避while循环,而且经常有人问我想要什么形状 def selectShape(): shape = "" while shape != "o" or shape != "x": shape

我正在构建一个小函数,允许玩家在Tic-Tac-Toe游戏开始时选择他们的形状(选择X或O),出于某种原因,我在下面的代码中遇到了问题。while语句不适用于其中的OR语句。当我删除任一形状时,代码将运行!=“o”或形状!=“x”,但在while循环中使用这两个选项时,我从不逃避while循环,而且经常有人问我想要什么形状

def selectShape():
    shape = ""
    while shape != "o" or shape != "x":
        shape = raw_input("What shape do you want to be? x or o? ")
    if shape == "x":
        print "The computer is player o"
    else:
        print "The computer is player x"

你经常被问到,因为有一个永远是真实的

如果选择X,则:形状!=“o”
如果选择O,则:形状!=“x”

您可能应该使用AND而不是OR

而形状!=“o”和形状!=“x”:
这样,如果两者都不正确,它将继续提示。如果其中一个是X或O,它将中断并继续运行。

shape!=“o”或形状!=“x”
是同义反复;没有同时是“o”和“x”的字符串。你的意思是“和”。(或者,更惯用的说法是,而形状不在[“o”,“x”]`)