逻辑“和”运算符如何处理整数? [复制]

Posted

技术标签:

【中文标题】逻辑“和”运算符如何处理整数? [复制]【英文标题】:How does the logical `and` operator work with integers? [duplicate] 【发布时间】:2018-09-14 10:42:59 【问题描述】:

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

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 中工作?

【问题讨论】:

我找到了***.com/questions/18195322/… 【参考方案1】:

来自 Python 文档:

表达式x and y首先计算x;如果x 为假,则其 返回值;否则,将评估 y 并得出结果值 被退回。

这正是您的实验显示的情况。您的所有 x 值都是 true,因此将返回 y 值。

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

【讨论】:

【参考方案2】:

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

not x   Returns True if x is False, 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 为真,所以它会返回 2

【讨论】:

not x

以上是关于逻辑“和”运算符如何处理整数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Z3 如何处理非线性整数运算?

复制控制函数中如何处理 C++ 数组成员?

三元运算符如何处理比较运算符(宇宙飞船运算符)

这个三元运算符如何处理这个语句?

Javascript 数值比较运算符究竟是如何处理字符串的?

数学库中的除法函数如何处理除法运算符无法做到的精度误差?