所以说,在一个循环中......
var = input()
while var =! "A" and var =! "B":
var = input()
我希望它循环直到用户输入 A 或 B.现在从逻辑上讲,使用"或"更有意义。而不是"和"。但"和"似乎是有效的。我试图绕过原因。对于"和"我想逐步得到这个逻辑。和"或"关键字。
所以说用户输入" C"。 while循环将检查var不等于A,这是真的,然后检查var是否不等于B,这也是真的。所以不会运行循环吗?
现在使用"或"相反,它将检查var是否不是A然后检查var是否不是B,如果它满足任一要求,它将运行循环。所以不会"或者#34;应该工作的那个?
答案 0 :(得分:0)
首先,你当然是!=
,而不是=!
。其次,阅读de Morgan的法律(https://en.wikipedia.org/wiki/De_Morgan's_laws)。
至于你的例子,让我们考虑var == 'A'
时会发生什么。从那里我们有你的循环条件,它指出var != 'A' and var != 'B'
。从那里,我们有'A' != 'A' and 'A' != 'B'
。因此,我们有False and True
,它提供False
并且循环不会运行。
如果我们有or
而不是and
,我们会得到:False or True
,它会给True
并且程序会循环播放。
否定可能会让你感到困惑。 Per de Morgan的法律var != 'A' and var != 'B'
相当于!(var == 'A' or var == 'B')
答案 1 :(得分:0)
你说的是真的。如果输入一个从A和B输出的值C,则循环将运行。如果你想运行循环,如果A或B是输入,那么你应该使用或。