我具有以下功能,基本上要求用户输入“ X”或“ O”的选择。我使用了while循环不断询问用户,直到得到答案是“ X”或“ O”为止。
def player_input():
choice = ''
while choice != "X" and choice != "O":
choice = input("Player 1, choose X or O: ")
pl1 = choice
if pl1 == "X":
pl2 = "O"
else:
pl2 = "X"
return (pl1, pl2)
上面的代码可以正常工作,但是我不太理解在特定情况下“和”如何工作。如果我理解正确,“和”意味着两个条件都必须成立。但是,在任何给定时间,选择只能是“ X”或“ O”。
请帮助我理解这一点。如果您认为这是一个愚蠢的问题,请提前道歉。我是python和一般编程的新手。
谢谢!
答案 0 :(得分:0)
在这种情况下,选择从空白开始,然后进入while循环。在while循环中,要求玩家选择X或O。该条件强制用户输入X或O。如果用户键入Z,则条件为true,并重复循环以要求其他输入。如果用户键入X或O,则条件现在返回false,并退出while循环。
答案 1 :(得分:0)
该条件用英语表示“您的选择不是X且您的选择不是O”,换句话说,“您的选择既不是X也不是O”。这是一段时间的一部分,因此基本上是说它将循环,直到您不给出既不是X也不是O的东西。换句话说,当您给它输入X或
答案 2 :(得分:0)
确实可以,但是也很难理解。其他人已经解释了它是如何工作的,但是我想提出该函数的另一个版本,该版本具有相同的功能,但是更短并且更容易理解:
def player_input():
choice = ''
while choice not in ["X" ,"O"]:
choice = input("Player 1, choose X or O: ")
return choice
choice = player_input()
答案 3 :(得分:0)
“和”连接变量“选择”上的两个检查。如果两者都为真,则将重复;如果两者为假,则将退出“ while”。如果用括号括起来,可能会更清楚。
同时(选择不是“ X”)和(选择不是“ O”):
首先,您要检查选择项是否不是“ X”,如果是,则检查选择项是否不是“ O”,如果这也是正确的,则您具有“ true”和“ true”,即“ true”。 如果选择是“ X”或“ O”,则将得到“ false”和“ true”,或者得到“ true”和“ false”,即“ false”。
通常,对于任何“与”为真,“与”的两面都必须为真。 对于“或”,只有一方必须为“真”才能评估为“真”。
答案 4 :(得分:0)
我认为让您真正困惑的是您不相信
not x and not b == not (x or b)
not x or not b == not (x and b)
但是我可以向您保证是这种情况。实际上,这是demorgans theorem上完整的维基百科页面(上面有陈述),证明是这样。