我开始在python 3.x中进行编码,在我的第一个脚本中,我执行了一个循环,而用户键入除'b'或'B'以外的任何内容时,他都会停留在循环中,但实际上当我键入'b'或' B'我留在循环中,我不知道为什么。
抱歉,我的英语是青蛙,你知道x)
最好的问候
我尝试使用raw_input纠正此问题,但似乎在python 3.x中未定义raw_input()。
ipt2 = input ('tapez b pour quitter')
while ipt2 != 'b' or ipt2 != 'B':
print(get_random_quote(quotes))
ipt2 = input ('tapez b pour quitter')
print(ipt2)
当我输入B时,我会停留在循环中,我认为我必须退出循环,不是吗?
最后一行是在这里查看ipt2的值是什么。
答案 0 :(得分:0)
问题是您正在使用CREATE newFile
OPEN newFile
ACCESS newFile
CLOSE_NOWRITE:CLOSE newFile
进行检查,但是在这种情况下,您需要使用or
:
and
逻辑如下:
第一个示例
ipt2 = A
在行ipt2 = input ('tapez b pour quitter')
while ipt2 != 'b' and ipt2 != 'B':
print(get_random_quote(quotes))
ipt2 = input ('tapez b pour quitter')
print(ipt2)
中,我们检查了以下内容:
1)ipt2不是'b'(ipt2是A,所以正确或while ipt2 != 'b' and ipt2 != 'B':
)
2)ipt2不是'B'(ipt2是A,因此正确或True
)
两个条件均为True
,因此循环继续进行。
第二个示例
ipt2 = B
现在我们再次检查:
1)ipt2不是'b'(ipt2是B,所以是正确的或True
)
2)ipt2不是'B'(ipt2是B,所以不正确或True
)
一个条件为False
,另一个条件为True
,因此循环继续进行,因为我们正在检查 conidition1 OR conidition2 是True。如果False
是ipt2
,那么ipt2不是'B'
,反之亦然,一个结果将始终为True,并且循环将继续。