我有以下Python脚本:
playerInput = ""
x = playerInput != "a";
y = playerInput != "b";
while x or y:
playerInput = input();
问题在于,无论我写什么,这两个条件始终都是正确的。
答案 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
而不是a
或b
的一些初始值),并且您从未改变他们的价值观。摆脱那些单字母名称;他们无助于使代码清晰。另外,请完成有关布尔运算的教程:在复合条件下,您已经犯了一个普遍的错误:您将很难找到使两个条件都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': ")