当前位置: 首页 > 面试题库 >

Python中的逻辑运算符

徐高韵
2023-03-14
问题内容

在阅读python中的逻辑运算符时,我遇到了一些表达式:

  5 and 1

输出1

  5 or 1

输出:5

谁能解释这是如何工作的?
我知道, 操作数 的的 逻辑 运算符布尔


问题答案:

有据可查:

x or y      if x is false, then y, else x 
x and y     if x is false, then x, else y

两者都短路(例如,如果为 真,or则不会评估)。y``x __

该文档还指出了被认为 falsyFalse0None,空序列/映射,…) -一切被认为是 truthy

一些例子:

7 and 'a'             # -> 'a'
[] or None            # -> None
{'a': 1} or 'abc'[5]  # -> {'a': 1}; no IndexError raised from 'abc'[5]
False and 'abc'[5]    # -> False; no IndexError raised from 'abc'[5]

请注意,最后两个如何显示短路行为:IndexError执行第二个语句(将引发)。

您关于操作数为布尔值的说法有点无聊。python确实有布尔值(实际上只有两个:TrueFalse;它们是int的子类型)。但是python中的逻辑运算只是检查操作数是 还是
。不会在操作数上调用该bool函数。

在正式的python文档中似乎不使用术语 truefalsy
。但是教python和此处社区的书籍确实使用了这些术语。在english.stackexchange.com上有关于术语的讨论,在维基百科上也有提及。



 类似资料:
  • 主要内容:打脸某些 Python 教程,逻辑运算符的本质高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。 Python 也有类似的逻辑运算,请看下表: 表 1 Python 逻辑运算符及功能 逻辑运算符 含义 基本格式 说明 and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 or 逻辑或运算,等价于数学

  • 问题内容: 我对使用Python中的逻辑运算符获得的结果感到有些困惑。我是一个初学者,正在学习一些书籍,但是它们并没有像我所希望的那样详尽地解释。 这是我自己的代码: 似乎只是输出两个变量。 因此,我添加了另一个变量整数。然后我打印并得到以下输出: 后台Python到底是怎么回事?为什么输出的不是7或5、2之类的。 问题答案: Python布尔运算符返回最后计算的值,而不是True / False

  • and, or, not 其中,and 和 or 与 C 语言区别特别大。 在这里,请先记住,在 Lua 中,只有 false 和 nil 才计算为 false,其它任何数据都计算为 true,0 也是 true! and 和 or 的运算结果不是 true 和 false,而是和它的两个操作数相关。 a and b: 如果 a 为 false,则返回 a;否则返回 b a or b: 如果 a

  • 2.2.1关系表达式 a) 关系运算符 关系运算符就是关系比较符。Fortran中有六个关系运算符: 关系运算符 英语含义 所代表的数学符号 .GT. .GE. .LT. .LE. .EQ. .NE. > >= < <= == /= Greater Than Greater than or Equal to Less Than Less than or Equal to EQual to Not

  • JavaScript 中有三个逻辑运算符:||(或),&&(与),!(非)。 虽然它们被称为“逻辑”运算符,但这些运算符却可以被应用于任意类型的值,而不仅仅是布尔值。它们的结果也同样可以是任意类型。 让我们来详细看一下。 ||(或) 两个竖线符号表示“或”运算符: result = a || b; 在传统的编程中,逻辑或仅能够操作布尔值。如果参与运算的任意一个参数为 true,返回的结果就为 tr

  • 问题内容: 运算符和有什么不一样?和运算符|| ?? 而且&和&& ??有什么区别? 谢谢… 问题答案: 主要区别在于,在表达式中,如果为false,则不会进行计算,而在两者中,无论如何都将进行计算。可以说是“ 短路 ”评估。 同样,对于:如果为true,则不会进行评估,而对于两者而言,则无论如何都将被评估。