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

什么是Truthy和Falsy?它和真假有什么不同?

钦良弼
2023-03-14

我刚刚了解到python中有truthy和falsy值,它们不同于正常的TrueFalse

有人能深入解释什么是真实和虚假的价值观吗?我应该在哪里使用它们?truthy和True值与falsy和False值之间有什么区别?

共有3个答案

华星驰
2023-03-14

Python通过将bool()应用到类型来确定真实性,该类型返回TrueFalse,该类型用于表达式,如if

下面是一个自定义类Vector2d的示例,当幅值(向量长度)为0时,它的实例返回False,否则返回True

import math
class Vector2d(object):
    def __init__(self, x, y):
        self.x = float(x)
        self.y = float(y)

    def __abs__(self):
        return math.hypot(self.x, self.y)

    def __bool__(self):
        return bool(abs(self))

a = Vector2d(0,0)
print(bool(a))        #False
b = Vector2d(10,0)    
print(bool(b))        #True

注意:如果我们没有定义\uu bool\uu,它将始终返回True,因为默认情况下用户定义类的实例被视为truthy。

书中的例子:“流畅的Python,清晰、简洁、有效的编程”

郎聪
2023-03-14

正如注释所描述的,它只是指被评估为True或False的值。

例如,要查看列表是否为空,请不要这样检查:

if len(my_list) != 0:
   print("Not empty!")

您可以简单地执行以下操作:

if my_list:
   print("Not empty!")

这是因为某些值(如空列表)在为布尔值求值时被视为False。非空列表为True。

类似地,对于整数0、空字符串“”等等,对于False,对于非零整数、非空字符串等等,对于True。

“truthy”和“falsy”等术语的概念只是指在上述情况下被视为正确的价值观,以及被视为错误的价值观。

例如,空列表([])被认为是虚假的,非空列表(例如,[1])被认为是真实的。

另请参见文档的本节。

任文乐
2023-03-14

所有价值观都被视为“真实的”,但以下价值观除外,即“虚假的”:

  • False
  • 0
  • 0.0
  • 0j
  • 十进制。十进制(0)
  • 分数。分数(0,1)
  • []-一个空的列表
  • {}-一个空的
  • ()-一个空的元组
  • "-一个空的str
  • b"-一个空的字节
  • set()-一个空的set
  • 一个空的范围,如范围(0)
  • 对象
    • obj.__bool__()返回False
    • obj.__len__()返回0

    “truthy”值将满足ifwhile语句执行的检查。我们使用“truthy”和“falsy”来区分boolTrueFalse

    真值检验

 类似资料:
  • 问题内容: 我刚刚才知道有和值在这是从正常的不同和? 有人可以深入解释什么是真实和虚假的价值观吗? 我应该在哪里使用它们? 是什么区别和值和和价值观? 问题答案: 如评论所述,它仅指评估为True或False的值。 例如,查看列表是否不为空,而不是像这样检查: 您可以简单地做到这一点: 这是因为在评估布尔值时,某些值(例如空列表)被视为False。非空列表为True。 类似地,对于整数,对于,空字

  • 有人能使用下面的示例数据解释JavaScript Truthy和Falsy吗?我读过其他线程,但仍然感到困惑。 根据我的理解,我认为var a=1 是唯一的真理,其余的都是虚假的-这是正确的吗?

  • 我刚刚开始使用MongoDB,我注意到它使用BSON在内部存储数据。然而,关于什么是BSON以及如何在MongoDB中使用BSON,文档并不十分清楚。有人能给我解释一下吗?

  • 虽然总是可以使用mixin或方法重写来修改Bool强制,但默认情况下,哪些值被认为是truthy,哪些值被认为是falsy? 注意:这个问题以前问过,但不幸的是它太老了,它的内容完全过时了,没有用的是现代的拉库。

  • 本文向大家介绍contextType是什么?它有什么用?相关面试题,主要包含被问及contextType是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 定义当前组件要使用哪一个context

  • 本文向大家介绍childContextTypes是什么?它有什么用?相关面试题,主要包含被问及childContextTypes是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 childContextTypes用来定义context数据类型,该api从16.3开始已被废弃 使用方式