一尘不染

Python-什么是真实和虚假?它与对与错有什么不同?

python

我刚刚才知道有TruthyFalsy值在Python这是从正常的不同TrueFalse

有人可以深入解释什么是真实和虚假的价值观吗?

我应该在哪里使用它们?

是什么区别truthyTrue值和falsyFalse价值观?


阅读 613

收藏
2020-02-08

共2个答案

一尘不染

如评论所述,它仅指评估为True或False的值。

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

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

您可以简单地做到这一点:

if my_list:
   print("Not empty!")

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

类似地,对于整数0,对于False,空字符串“”,依此类推;对于True,对于非零整数,非空字符串,依此类推。

像“真实的”和“虚假的”这样的术语的概念仅是指在上述情况下被认为是True的那些值,以及被认为是False的那些值。

例如,一个空列表([])被视为“虚假”,而一个非空列表(例如[1])被视为“真实”。

2020-02-08
一尘不染

除以下值falsy外,所有值均被视为"truthy" 值:

  • None
  • False
  • 0
  • 0.0
  • 0j
  • Decimal(0)
  • Fraction(0, 1)
  • [] - an empty list
  • {} - an empty dict
  • () - an empty tuple
  • ’‘ - an empty str
  • b’‘ - an empty bytes
  • set() - an empty set
  • an empty range, like range(0)
  • objects for which
  • obj.bool() returns False
  • obj.len() returns 0

“真实的”值将满足由ifwhile语句执行的检查。我们使用"truthy" and "falsy" 来区别boolTrueandFalse

2020-02-08