在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循环不会停止并打印该值。我不知道为什么。有什么想法吗?
答案 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']: