比较运算符为 | 给出不同的值& 与 and 或 - Python
Comparison operators give different values for | & compared to and or - Python
我对比较运算符感到困惑。例如,
10 or 20 == 20
# output, expected True
10
10 | 20 == 20
(10 | 20) == 20
(10 or 20) == 20
所有 3 行代码都给出 'False',但我期望 'True'。
10 or 20 == 20
# output gives 10, but was expecting True
10
另一个例子:
10 and 20 > 2
# output is as expected
True
(10 and 20) > 2
True
(10 & 20) > 2
# output gives False, but was expecting True
False
最后,如果我这样做:
10 or 20 > 100
#output is 10. No idea why
10
3 or 8 < 200
3
任何人都可以帮助消除这种困惑吗?非常感谢您花时间阅读我的困惑!我正在使用 Python 3.6
这两个条件运算符都会 return 他们必须评估的最后一个条件或值。
or
运算符评估这些条件中的任何一个是否为真,return 它评估的最后一个条件。由于 10
在 Python(或与此相关的任何其他语言)中被视为 True
,因此该语言甚至不会通过第二个条件(或值)而只是 return 第一个值。而在 and
的情况下,两个条件都必须为真,如果两个都为真,则第二个值将被 return 编辑,否则将是第一个值。
>>> True or False
True
>>> False or True
True
>>> True and False
False
# Similarly
>>> 10 or 20
10
>>> 10 and 20
20
>>> 0 or 10
10
>>> 0 and 10
0
此行为还为某些 b = a if a else c
种行为提供了方便的替代方法。
它类似于判断真假的情况:
>>> 20 or 10
20
>>>(20 or 10) == 10
False
>>>(20 or 10) == 20
True
这是因为它将第一个值设为真,将下一个值设为假,当您传递真值或假值时,您会得到真值,同样您会得到 20,这实际上代表此处的真值。
希望这可以帮助。
我对比较运算符感到困惑。例如,
10 or 20 == 20
# output, expected True
10
10 | 20 == 20
(10 | 20) == 20
(10 or 20) == 20
所有 3 行代码都给出 'False',但我期望 'True'。
10 or 20 == 20
# output gives 10, but was expecting True
10
另一个例子:
10 and 20 > 2
# output is as expected
True
(10 and 20) > 2
True
(10 & 20) > 2
# output gives False, but was expecting True
False
最后,如果我这样做:
10 or 20 > 100
#output is 10. No idea why
10
3 or 8 < 200
3
任何人都可以帮助消除这种困惑吗?非常感谢您花时间阅读我的困惑!我正在使用 Python 3.6
这两个条件运算符都会 return 他们必须评估的最后一个条件或值。
or
运算符评估这些条件中的任何一个是否为真,return 它评估的最后一个条件。由于 10
在 Python(或与此相关的任何其他语言)中被视为 True
,因此该语言甚至不会通过第二个条件(或值)而只是 return 第一个值。而在 and
的情况下,两个条件都必须为真,如果两个都为真,则第二个值将被 return 编辑,否则将是第一个值。
>>> True or False
True
>>> False or True
True
>>> True and False
False
# Similarly
>>> 10 or 20
10
>>> 10 and 20
20
>>> 0 or 10
10
>>> 0 and 10
0
此行为还为某些 b = a if a else c
种行为提供了方便的替代方法。
它类似于判断真假的情况:
>>> 20 or 10
20
>>>(20 or 10) == 10
False
>>>(20 or 10) == 20
True
这是因为它将第一个值设为真,将下一个值设为假,当您传递真值或假值时,您会得到真值,同样您会得到 20,这实际上代表此处的真值。 希望这可以帮助。