什么是真理和谬误?它和真假有什么区别?

2024-09-28 20:44:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚才知道,python中有TruthyFalsy值,它们不同于普通的TrueFalse

有人能深入解释一下什么是truthy和falsy值吗?

我应该在哪里使用它们?

truthy和True值与falsy和False值之间有什么区别?


Tags: falsetruetruthy区别falsy
3条回答

如注释所述,它只是指被计算为True或False的值。

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

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

您只需执行以下操作:

if my_list:
   print("Not empty!")

这是因为当对布尔值求值时,某些值(如空列表)被视为False。非空列表为真。

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

像“truthy”和“falsy”这样的术语只是指那些在上述情况下被认为是正确的价值观,以及那些被认为是错误的价值观。

例如,空列表([])被视为“falsy”,而非空列表(例如,[1])被视为“truthy”。

另请参见this section of the documentation

Truthy值指的是在布尔上下文中使用的对象,而不是返回true或false的布尔值

>>> bool([])
False
>>> bool([1])
True
>>> bool('')
False
>>> bool('hello')
True

所有的价值观都被视为“真理”,除了以下“错误的”价值观:

  • None
  • False
  • 0
  • 0.0
  • 0j
  • Decimal(0)
  • Fraction(0, 1)
  • []-空的list
  • {}-空的dict
  • ()-空的tuple
  • ''-空的str
  • b''-空的bytes
  • set()-空的set
  • 一个空的range,就像range(0)
  • 对象
    • obj.__bool__()返回False
    • obj.__len__()返回0

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

Truth Value Testing

相关问题 更多 >