如何打印变量的真值?

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 是相关的,但不是重复的 - 因为它没有询问打印它。把它留在这里作为侧边栏。

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