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

Python布尔变量,真,假和无[重复]

汪驰
2023-03-14

我有一个名为mapped_filter的布尔变量。如果我没有错,这个变量可以容纳3个值,要么TrueFalse

我想区分if语句中的3个可能值。有没有比做以下事情更好的方法?

if mapped_filter:
    print("True")
elif mapped_filter == False:
    print("False")
else:
    print("None")

共有1个答案

白星海
2023-03-14

在您的代码中,任何不真实或False都会打印,即使是其他内容。所以[]将打印。如果除了TrueFalseNo之外没有其他对象可以到达那里,那么您的代码就可以了。

但在python中,我们通常允许任何对象真实与否。如果您想这样做,更好的方法是:

if mapped_filter is None:
    # None stuff
elif mapped_filter:
    # truthy stuff
else:
    # falsey stuff

如果明确不允许任何非boolNone的值,请执行以下操作:

if isinstance(mapped_filter, bool):
    if mapped_filter:
        # true stuff
    else:
        # false stuff
elif mapped_filter is None:
    # None stuff
else:
    raise TypeError(f'mapped_filter should be None or a bool, not {mapped_filter.__class__.__name__}')
 类似资料:
  • 我的主活动中有一个布尔私有字段变量,该变量设置为false: 创建acccount时,我将其设置为true: 但是布尔值不会从假变为真。上面显示的代码位于MainActivity.java类和一个公共void方法中。我希望这个布尔值改变,因为如果为false,用户不能玩,如果为true,用户将能够玩。

  • 照例,每个类型的值都有一个相应类型的变量。C++中的布尔类型叫做bool。布尔变量的使用和其他类型类似,如: bool fred; fred = true; bool testResult = false; 第一行是一个简单的变量声明;第二行是个赋值;第三行是声明和赋值的组合,叫做初始化。 前面提到过,比较操作符的结果是布尔值,所以可以将结果保存在布尔变量中,如: bool evenFlag =

  • 问题内容: 我遇到了这种语法: 这个带有两个点的语法是什么? 在哪里可以找到有关它的信息? 它仅适用于布尔值还是以其他不同方式实现? 问题答案: 是条件运算符。(不只是一部分,整个方法参数是示例中条件运算符的一种用法。) 它通常被称为三元运算符,但这只是其本质的一个方面-具有三个操作数- 而不是其名称。如果在Java中引入了另一个三元运算符,则该术语将变得模棱两可。之所以称为条件运算符,是因为它有

  • 问题内容: 我声明一个布尔变量。例如, 现在,如果我执行以下代码段: 我懂了。好吧,我知道它很明显,但是我需要知道其背后的原因。 问题答案: 当您评估对象的布尔值时,Java会将其取消装箱(自装箱功能,自1.5开始)。因此,实际的代码是:。然后它抛出。对于任何装箱的值,将空对象拆箱将引发此异常。 在1.5之前,您必须手动将值拆箱:所以它更明显(也更加冗长:)

  • 我正在我的web应用程序中运行以下sql查询: 我期望结果为true(布尔数据),但我得到的是false的t或f。我如何让它返回到我的lua代码一个标准的布尔值? 我发现了以下帖子: 用PHP正确读取Postgres中的布尔值 所以我试着把代码改成这样: 或 但是我有一个语法错误<你能告诉我最好的处理方法吗?我是否应该以某种方式将结果“t”转换为布尔值?或者有没有办法告诉postgresql返回t

  • 在PostgreSQL(9.4版,pgAdmin3)中,当对具有布尔列的表执行select时,数据输出显示“t”或“f”。我想在不写CASE语句或进行连接的情况下,将布尔值转换为TRUE或FALSE。 顺便说一句,根据PostgreSQL自己的文档,这种行为不是SQL标准。 关键字TRUE和FALSE是首选(符合SQL的)用法。 PS:只有在pgAdmin中使用SQL编辑器时才会发生这种情况。使用