如何打印变量的真值?

Posted

技术标签:

【中文标题】如何打印变量的真值?【英文标题】:How can I print the Truth value of a variable? 【发布时间】:2017-01-29 00:13:06 【问题描述】:

在 Python 中,变量根据其内容具有真实值。例如:

>>> def a(x):
...     if x:
...         print (True)
... 
>>> a('')
>>> a(0)
>>> a('a')
True
>>> 
>>> a([])
>>> a([1])
True
>>> a([None])
True
>>> a([0])
True

我也知道我可以在完全不使用 if 运算符的情况下打印比较的真实值:

>>> print (1==1)
True
>>> print (1<5)
True
>>> print (5<1)
False

但是如何打印变量的 True / False 值?目前,我正在这样做:

print (not not a)

但这看起来有点不雅。有首选方式吗?

【问题讨论】:

bool 是要走的路,但我喜欢not not hack :) @CraigBurgler -- not not hack 在 javascript 中被大量使用......!!whatever 是一个非常标准的成语,用于“给我任何东西的'布尔值'”。不过,我从未在 Python 中见过它 :-) 还有True if a else False ...但使用bool :) @mgilson:在你想对全局查找和函数调用进行微优化的情况下,它可能会有点用处,因为not not x is a bit faster than bool(x),但我实际上从未在实践中见过它。这种微优化很重要的情况非常罕见。 【参考方案1】:

使用内置的bool 类型。

print(bool(a))

来自 REPL 的一些示例:

>>> print(bool(''))
False
>>> print(bool('a'))
True
>>> print(bool([]))
False

【讨论】:

不错。这种对变量的固有真实性是否有一个名称 - 这样我下次可以更轻松地搜索? @Tim -- 嗯......没有“名字”真的浮现在脑海中。在这种情况下,我可能会问 Google 如何从某个事物的实例构造一个布尔值。 我也想知道。如果你找到它,请重命名"boolness" question .. @Tim 根据Built-in Types 文档的第一部分,名称可能是truth value:docs.python.org/3.4/library/stdtypes.html @CraigBurgler 在这种情况下,***.com/questions/18491777 是相关的,但不是重复的 - 因为它没有询问打印它。把它留在这里作为侧边栏。

以上是关于如何打印变量的真值?的主要内容,如果未能解决你的问题,请参考以下文章

Prolog 一阶逻辑 - 打印真值表

组合电路(反推逻辑表达式,组合电路的控制结果只和输入变量的状态有关)

斑马谜题真值表

离散数学——python实现真值表和打印主范式

如何从 firestore 检查有多少项目具有真值或假值并在列表中仅显示真值? - 颤动

如何找到逻辑真值表的输入数量?