2016-09-20 61 views
3

在Python中,变量具有基于其内容的真值。例如:如何打印变量的真值?

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

我也知道我可以打印一个比较truthy值,而不在所有的,如果运营商:

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

但我怎么能打印变量的True/False价值?目前,我这样做:

print (not not a) 

但这看起来有点不雅。有没有一种首选方式?

+0

'bool'是要走的路,但我喜欢'不not'劈:) –

+1

@CraigBurgler - 的'不not'破解在Javascript中使用了很多......'!!无论什么“是一个非常标准的习惯用语,”给我任何“布尔值”。我从来没有在Python中看到过它:-) – mgilson

+0

还有'如果其他错误'是真的......但使用bool :) – wim

回答

5

使用内建的bool类型。

print(bool(a)) 

从REPL一些例子:

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

不错。是否有一个变量的内在真理的名称 - 所以我可以更容易地搜索下一次? – Tim

+0

@Tim - 嗯......没有“名字”真的想到了。在这种情况下,我可能会问Google如何从某个事物的实例构造一个布尔值。 – mgilson

+0

我也想过。如果你找到它,请重命名[“boolness”](http://stackoverflow.com/questions/8205558/defining-boolness-of-a-class-in-python)的问题。 – wim