当前位置: 首页 > 知识库问答 >
问题:

python真理测试中bool()和==之间有什么区别吗?

邢博涛
2023-03-14

我有两个问题。

>

  • 当bool()方法调用时,Python中的任何东西(对象、类型、操作、函数...)都可以返回布尔值吗?

    为什么下面两行代码不返回相同的答案?

    print (float == True)  #prints False
    print bool(float)      #prints True
    
  • 共有3个答案

    王渊
    2023-03-14

    >

  • 是的,Python中的每个对象都返回一个布尔值,当与调用该对象的__nonzero__-method一起使用时

    因为第一个打印不会调用\uuuuu非零方法。

  • 籍昱
    2023-03-14
    1. 是的。bool()的文档说:

    类布尔([x])

    返回一个布尔值,即True或False。使用标准真值测试程序转换x。

    标准真实性测试程序适用于任何对象:

    可以对任何对象进行真值测试,以便在if或而条件中使用,或者作为下面布尔运算的操作数。以下值被视为假值:[...]所有其他值都被认为是true--因此许多类型的对象总是true。

    龙霖
    2023-03-14

    这两个,=bool(),是不同的=用于相等性测试,而bool()返回作为参数传递给它的对象的真值测试结果。

    根据bool()-

    类布尔([x])

    返回一个布尔值,即True或False。使用标准真值测试程序转换x。如果x为false或省略,则返回false;否则返回True。

    标准真理测试程序可在文件中找到-

    可以对任何对象进行真值测试,以便在if或而条件中使用,或者作为下面布尔运算的操作数。以下值被视为false:

    >

  • 任何数字类型的零,例如,00L0.00j

    任何空序列,例如,"()[]

    任何空映射,例如,{}

    用户定义类的实例,如果该类定义了一个\uuuu非零\uuuuuu()\uuuu len\uuuuu()方法,则该方法返回整数零或布尔值False。

    所有其他值均被视为True——因此许多类型的对象始终为True。

    当您执行bool(float)时,您正在检查float的真值,这是真的。

    但是当您执行float==True时,您执行的是相等(请注意,这不是真值测试,而是相等)。在这种情况下,floatTrue不相等,因此导致False

  •  类似资料:
    • 问题内容: 和两个测试值是否 truthy 或 falsy ,他们似乎从文档颇为相似,它甚至说,在文档是: 这等效于使用bool构造函数。 但是,速度是简单测试的两倍(显示了Python 3.6的计时,但2.7相似): 那有什么区别呢?我应该使用代替吗? 问题答案: 虽然并 输出 为主要用途的情况下相同的结果他们的 实现 实际上是相当不同的。是一个类或类型的构造函数,同时是一个狭窄的优化正则函数。

    • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

    • 问题内容: Python模块和Python包之间有什么区别? 问题答案: 模块是单个文件(一个或多个文件),可在一个导入下导入并使用。例如 包是目录中提供包层次结构的模块的集合。

    • 问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。将其视为从父作用域到子指令的“单向”通信。 允许指令的隔离范围将值传递到父范围中,以便在属性中定义的表达式中进行求值。请注意,指令

    • 我在编写一个非常庞大的mib时遇到了问题,因为我只有一个代理与许多没有snmp的设备连接。所有设备都通过推送将相同类型的数据发送到代理,然后代理将snmp陷阱发送到snmp管理器。此外,Manager正在向代理发送SNMP GET。我想编写一个标准的mib,它适用于每个设备,管理器只需发送一些OID来获取对应的值,而不是数百个OID。一个非常庞大的mib意味着有很多分支。

    • 问题内容: 有什么不同? 元组/列表的优点/缺点是什么? 问题答案: 除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。 使用这种区别可以使代码更加明确和易于理解。 一个示例是成对的页和行号,以成对参考书中的位置,例如: 然后,您可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用