如何打印变量的真值?
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 是相关的,但不是重复的 - 因为它没有询问打印它。把它留在这里作为侧边栏。以上是关于如何打印变量的真值?的主要内容,如果未能解决你的问题,请参考以下文章
组合电路(反推逻辑表达式,组合电路的控制结果只和输入变量的状态有关)