python-3.x 布尔运算符'and',如果一个表达式为False,则预期为False?

8ljdwjyq  于 2023-05-23  发布在  Python
关注(0)|答案(1)|浏览(205)

我是一个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一些如何,所以我认为我没有在看我应该看什么,它将是尴尬的知道答案。谢谢。

5ssjco0h

5ssjco0h1#

因为您没有打印(3 < 4) and (6 < 5),所以您正在打印3 < 4

首先:您正在调用print函数

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

print("Hello world")

将打印Hello World,因为这是提供给它的参数。
类似地,当您使用3 < 4调用print函数时-此表达式实际上为true。

第二:布尔表达式格式错误

当你说:

a and b

Python检查ab是否都为true。所以如果你这样做:

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

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

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

你说表达式的计算结果是True。但这实际上是不正确的。表达式的计算结果为False,因为(6 < 5)...但你只能打印出3 < 4

第四:不需要括号

Python是一种简单、干净、可读的语言。通过向代码中添加不必要的符号和标记,可以混淆代码。这会导致代码可读性较差,并可能导致许多错误,比如你的错误。
不要在不需要的地方使用括号。你也可以通过写作来完成同样的事情:

print(3 < 4) and 6 < 5

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

print(3 < 4 and 6 < 5)

相关问题