不等于(!=)操作不在while循环中工作

时间:2015-10-09 00:28:09

标签: python loops

在python中的while语句中使用!=操作是否有任何特殊规则。例如,我有一个像这样的代码循环

input("f_l value ")
while f_l != "s" or f_l != "S" or f_l != "q" or f_l != "Q":
    print("Error")
    input("f_l value ")
print("your f_l is correct")

while循环不会停止并打印该值。我不知道为什么。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

首先,您input()的返回值分配给f_l,那么,它如何包含所需的值?你应该这样做:

f_l = input('f_l value')
while f_l != 's' or f_l != 'S' or f_l != 'q' or f_l != 'Q':
    print('Error')
    f_l = input('f_l value')

print('your f_l is correct')

现在,仍然永远循环。为什么?因为没有可以同时是's''S''q''Q' ,因为那是什么你用or作为循环完成的条件来表达。也许你想用and s替换它们?

while f_l != 's' and f_l != 'S' and f_l != 'q' and f_l != 'Q':

现在,这有效,但它仍然不是最佳的。您正在检查每个可能的输入值,而不是简化自己并执行以下操作:

while f_l.lower() not in ['s', 'q']: