逻辑“和”运算符如何在Python中使用整数?

时间:2018-04-04 18:49:10

标签: python

所以,我正在玩解释器,输入以下内容:

In [95]: 1 and 2
Out[95]: 2

In [96]: 1 and 5
Out[96]: 5

In [97]: 234324 and 2
Out[97]: 2

In [98]: 234324 and 22343243242
Out[98]: 22343243242L

In [99]: 1 or 2 and 9
Out[99]: 1

最初我认为它与False和True值有关,因为:

In [101]: True + True
Out[101]: 2

In [102]: True * 5
Out[102]: 5

但这似乎并不相关,因为False总是为0,从上面的试验中可以看出它并不是输出的最大值。

我无法在这里诚实地看到这种模式,并且在文档中找不到任何内容(老实说,我并不真正知道如何有效地查找它)。

那么,怎么做

int(x) [logical operation] int(y)

在Python工作?

2 个答案:

答案 0 :(得分:11)

来自Python文档:

  

表达式x and y首先评估x;如果x为假,则为   返回值;否则,将评估y并生成结果值   归还。

这正是您的实验所发生的事情。您的所有x值均为true,因此会返回y值。

https://docs.python.org/3/reference/expressions.html#and

答案 1 :(得分:5)

对于Python中的每个项目,它都不依赖于整数。

not x   Returns True if x is True, False otherwise
x and y Returns x if x is False, y otherwise
x or y  Returns y if x is False, x otherwise

1为True,因此它将返回2