gpt4 book ai didi

既非真亦非假的 Python 事物

转载 作者:太空狗 更新时间:2023-10-29 17:39:14 29 4
gpt4 key购买 nike

我刚找到这个:

a = (None,)
print (a is True)
print (a is False)
print (a == True)
print (a == False)
print (a == None)
print (a is None)
if a : print "hello"
if not a : print "goodbye"

产生:

False
False
False
False
False
False
hello

所以 a 既不是,也不等于 True 或 False,但在 if 语句中充当 True。

为什么?

更新:

实际上,我刚刚意识到这并不像我想象的那么晦涩。对于 a=2,我也得到了相同的结果(尽管对于 a=0 或 a=1,它们分别被认为等于 False 和 True,但不是)

最佳答案

我发现这里几乎所有的解释都没有帮助,所以再试一次:

这里的混淆是基于用“is”、“==”和“if”进行的测试是三种不同的东西。

  • "is"测试身份,即是否是同一个对象。在这种情况下显然不是这样。
  • “==”测试值相等性,显然唯一具有 True 和 False 值的内置对象是 True 和 False 对象(任何数字类型的数字 0 和 1 除外)。<

重要的部分来了:

  • 'if' 测试 boolean 值。这意味着无论你给它什么表达式,它都会被转换为 True 或 False。你可以用 bool() 做同样的事情。 bool((None,)) 将返回 True。文档中列出了将评估为 False 的内容(此处由其他人链接)

现在也许这在我脑海中更加清晰,但至少我尝试过。 :)

关于既非真亦非假的 Python 事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1584733/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com