37

我对使用 Python 中的逻辑运算符得到的结果有点困惑。我是初学者,使用几本书进行学习,但它们并没有像我想要的那样详细解释。

这是我自己的代码:

five = 5
two = 2

print five and two

>> 2

它似乎只是输出两个变量。

five = 5
two = 2
zero = 0

print five and two and zero

所以,我添加了另一个变量整数。然后我打印并得到以下输出:

>> 0

Python 在后台发生了什么?为什么输出不是 7 或 5、2。

4

7 回答 7

48

Python 布尔运算符返回最后评估的值,而不是 True/False。文档对此有很好的解释:

表达式x and y首先计算x; 如果xfalse,则返回其值;否则,y评估并返回结果值。

于 2013-08-12T19:42:14.100 回答
5

附带说明一下:(我没有足够的代表发表评论)打印多个变量不需要 AND 运算符。您可以简单地用逗号分隔变量名称,例如print five, two 代替print five AND two. 您还可以使用转义将变量添加到打印行,例如print "the var five is equal to: %s" %five. 更多信息在这里:http ://docs.python.org/2/library/re.html#simulating-scanf

就像其他人所说的 AND 是一个逻辑运算符,用于将多个条件串在一起,例如

if (five == 5) AND (two == 2):
    print five, two
于 2013-08-12T19:54:06.250 回答
3

Boolean And 运算符将返回第一个值5,如果计算的表达式是false,则返回第二个值2,如果计算的表达式是true。因为5and2都是真实的、非假的和非空值,所以表达式被评估为真。

如果您想打印这两个变量,您可以将它们连接到一个字符串并打印出来。

five = 5
two = 2
print five + " and " + two

或者打印他们的总和,你可以使用

print five + two

文档说明如何使用逻辑布尔运算符。

于 2013-08-12T19:54:51.813 回答
1

例如AND,Python 中的 this 相当于&&Java 中的。这并不意味着英语中的 and 。是AND一个逻辑运算符。假设五个持有 5,两个持有 2。来自 Python 文档:表达式 x 和 y 首先计算 x;如果 x 为假,则返回其值;否则,评估 y 并返回结果值。基本上,它会评估您的情况下的最后一个整数,这是真的。

if (five and two):
...     print "True"
... else:
...     print "False"

AND 是逻辑运算符,用于测试特定情况的逻辑,而不是算术运算符。如果你想得到 7 对 5 和 2 的结果,你应该使用“+”,这意味着两个整数相加。见下文:

>>> five = 5
>>> two = 2
>>> print five + two
7
于 2013-08-12T19:41:03.447 回答
1

尝试09

结果是0因为 的值为0假。运算符左侧的and操作数为 False,因此整个表达式为 False 并返回0

于 2016-10-03T12:32:42.663 回答
0

在 Python 中,任何非零整数值都为真;零是假的。

OP 的值都是非零的。

AND 运算符从左到右测试,

和,如果所有值都为真,则返回最后评估的值。如果任何值为 false,则返回第一个。

由于两者都不为零,所以都为真,所以返回最后一个值

于 2018-04-05T03:19:18.087 回答
-2

要将整数变量转换为字符串,请在每个变量前添加 str

五 = 5 二 = 2

打印(str(五)+“和”+ str(二))

于 2021-05-12T17:45:01.557 回答