布尔运算符“and”,如果一个表达式为 False,则期待 False answer?

问题描述 投票:0回答:1

我是一个 1 周自学 python3 的人,我喜欢比较和布尔运算符并学习这个:

True   and   True   True
True   and   False  False
False  and   True   False
False  and   False  False

所以,我打电话

print(3 < 4) and (6 < 5)
      True    +   False

那么,为什么我得到

True

我已经尝试了所有其他试图犯类似错误的布尔值,改变了我输入这个 (

<
) 符号的方式,在 python tutor 中输入了这一行,结果是一样的,让我觉得 6 是次要的,然后是 5 一些怎么样,所以我想我不是在看我应该看什么,知道答案会很尴尬。谢谢。

python-3.x boolean boolean-logic boolean-expression boolean-operations
1个回答
0
投票

因为你没有打印

(3 < 4) and (6 < 5)
,所以你正在打印
3 < 4
.

首先:您正在调用打印功能

调用函数时,您可能还记得使用括号为函数提供参数。例如:

print("Hello world")

将打印

Hello World
,因为这是提供给它的参数。

类似地,当您使用

print
调用
3 < 4
函数时 – 这个表达式实际上是正确的。

第二:你有一个畸形的布尔表达式

当你说:

a and b

Python 检查

a
b
是否都为真。所以如果你这样做:

print(3 < 4) and (6 < 5)

a = print(3 < 4)
b = (6 < 5)

第三:你错了:表达式的计算结果为
False

你说表达式的计算结果为

True
。但这实际上是不正确的。表达式的计算结果为
False
因为 (6 < 5)... but you only print out
3 < 4
.

第四:你不需要括号

Python 被创建为一种简单、干净和可读的语言。通过向代码中添加不必要的符号和标记,您可以混淆代码。这会导致代码可读性降低,并可能导致许多错误,例如您的错误。

总是避免在不需要的地方使用括号。你可以通过写来完成同样的事情:

print(3 < 4) and 6 < 5

但是,您的意思完全不同。你的意思是写:*

print(3 < 4 and 6 < 5)
© www.soinside.com 2019 - 2024. All rights reserved.