当前位置: 首页 > 面试题库 >

Python中的“ True”和“ False”

夏侯朝斑
2023-03-14
问题内容

我试过运行这段代码:

path = '/bla/bla/bla'

if path is True:
    print "True"
else:
    print "False"

并输出 False 。我认为Python会将任何有价值的东西都视为 True 。为什么会这样呢?


问题答案:

6.11开始。 布尔运算

在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值将解释为false:False,None,所有类型的数字零以及空字符串和容器(包括字符串,元组,列表,字典)
集合和Frozensets)。所有其他值均解释为true。

我认为您误会的关键短语是“解释为错误”或“解释为真实”。这并不意味着这些值中的任何一个都等于True或False,甚至等于True或False。

如果'/bla/bla/bla'期望使用布尔表达式(如在if语句中),则该表达式将被视为true
,但是由于Ignacio的回答,该表达式'/bla/bla/bla' is True和的值'/bla/bla/bla' == True将为False。



 类似资料:
  • 问题内容: 当我们在Django中添加数据库字段时,通常会这样写: 同样是与做,等有什么根本区别在其 null=True only blank=True only null=True, blank=True 在相对于不同的字段。使用1/2/3有什么优点/缺点? 问题答案: 在数据库的列中设置NULL(与相对)。字段类型(例如或)的空白值将存储在数据库中。 blank确定是否需要表单中的字段。这包括

  • 问题内容: 我的交互式控制台的简要记录: 到底为什么呢? 编辑: 为了对比起见,请考虑运算符。 这使得有很大的意义,因为虽然和都意味着同样的事,作为一个条件语句,他们真的是不一样的东西。 再次编辑: 更有趣的后果: 问题答案: 因为Python中的Boolean是整数的子类型。从文档中: 布尔值是两个常量对象False和True。它们用于表示真值(尽管其他值也可以视为假或真)。在数字上下文中(例如

  • 问题内容: 谁能解释python字典的这种行为? 为什么不打印所有其他(键,值)对? 为什么将True,1和1.0评估为相同? 问题答案: 所述的3个项目的是相同的(它等于)。如果没有冲突,这就是python用作字典键的原因。而且也没有碰撞。 这里是有关python字典的旧实现的更多详细信息。新的实现按照这些原则行事(但保留顺序)。

  • 问题内容: 我最近使用的Train status API在JSON对象中添加了两个额外的键值对,这导致我的脚本崩溃。 这是字典: 毫不奇怪,我得到了以下错误: 如果我没记错的话,我认为这是因为JSON响应中的布尔值是/,而Python可以识别/ 。有什么办法解决吗? PS:我尝试将的JSON响应转换为字符串,然后将其转换回布尔值,结果发现如果字符串中有任何字符,我总会得到一个值。我有点卡在这里。

  • 问题内容: 在IPython 3交互式shell中: 那是因为1和True获得相同的插值,所以考虑到集合消除了重复项,所以只有其中一个(True)得以保留?我们如何保持两者? 问题答案: 集合是哈希的集合。即使该语句为False,该语句为True。因此,它们具有相同的哈希值,并且不能单独存在于集合中,并且 不能将它们都保留在集合中 编辑 使其明确,正如jme指出的,这是因为这两个都是正确的-它们相

  • 本文向大家介绍common-lisp True 和 False,包括了common-lisp True 和 False的使用技巧和注意事项,需要的朋友参考一下 示例 特殊符号T表示Common Lisp中的值true,而特殊符号NIL表示false: 在标准中,它们被称为“常量变量”(sic!),因为它们是无法修改其值的变量。因此,您不能将它们的名称用于普通变量,如以下不正确的示例所示: 实际上,