所以,我正在玩解释器,输入以下内容:
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工作?
答案 0 :(得分:11)
来自Python文档:
表达式
x and y
首先评估x
;如果x
为假,则为 返回值;否则,将评估y
并生成结果值 归还。
这正是您的实验所发生的事情。您的所有x
值均为true,因此会返回y
值。
答案 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