永远真实的条件

时间:2018-10-11 20:17:51

标签: python

我有以下Python脚本:

playerInput = ""
x = playerInput != "a";
y = playerInput != "b";
while x or y:
    playerInput = input();

问题在于,无论我写什么,这两个条件始终都是正确的。

2 个答案:

答案 0 :(得分:2)

尝试一下:

'contactid_contact@odata.bind': '/contacts(f76e4e7c-ea61-e511-80fd-3863bb342b00)'

主要问题是您在循环之前分配了playerInput = "" while (playerInput != "a") and (playerInput != "b"): playerInput = input() x

答案 1 :(得分:2)

这两个条件均为True,因为您在循环之前以这种方式设置了它们(表面上给了playerInput而不是ab的一些初始值),并且您从未改变他们的价值观。摆脱那些单字母名称;他们无助于使代码清晰。另外,请完成有关布尔运算的教程:在复合条件下,您已经犯了一个普遍的错误:您将很难找到使两个条件都False的值。

playerInput = input()
while (playerInput != "a") and \
      (playerInput != "b"):
    playerInput = input()

也许更多的“ Pythonic”是

while not playerInput in ("a", "b"):
    playerInput = input("Please choose 'a' or 'b': ")