即使条件为假,Python中的“ OR”语句也会计算为True

时间:2019-06-18 08:51:18

标签: python-3.x

即使我提供1,2或3之外的任何其他值,此逻辑OR的计算结果也为true。

在我开始学习Python时,请为这个问题提供帮助

user_input=int(input('Please provide Size of coffee: (1-small/2-medium/3-large)'))
if user_input!=1 or user_input!=2 or user_input!=3:
    print('Please input 1,2 or 3')

3 个答案:

答案 0 :(得分:0)

尝试这样的事情

user_input=int(input('Please provide Size of coffee: (1-small/2-medium/3-large)'))
if user_input not in (1, 2, 3):
    print('Please input 1,2 or 3')
else:
    print('Thanks... {} coming up'.format(user_input))

答案 1 :(得分:0)

您在程序中使用NOR操作,因此多个TRUE等于False。在这种情况下,正确的操作是NAND。希望对您有帮助。

user_input=int(input('Please provide Size of coffee: (1-small/2-medium/3-large)'))
if user_input!=1 and user_input!=2 and user_input!=3:
    print('Please input 1,2 or 3')

答案 2 :(得分:0)

问题出在实现逻辑检查操作的方式上,您已使用OR运算符连接了逻辑,即使输入之一为TRUE,该运算符的结果也为TRUE。在当前实现中,假设用户将键入2,因此根据您的代码,语句user_input!= 1和user_input!= 3将评估为TRUE,而user_input!= 2评估为FALSE,并且由于您已使用逻辑连接OR运算符,因为OR(TRUE,FALSE,TRUE)=> TRUE,您的输出将为TRUE。因此正确的实现是

user_input=int(input('Please provide Size of coffee: (1-small/2-medium/3-large)'))
acceptable_values = (1,2,3)
if user_input not in acceptable_values:
    print('Please input 1,2 or 3')