2016-09-20 101 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