2016-09-20 4 views
3

Pythonでは、変数はその内容に基づいて真理値を持ちます。たとえば:変数の真理値を印刷するにはどうしたらいいですか?

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

しかし、どのように、私は変数のTrue/False値を印刷することができます。

>>> 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 (not not a) 

しかし、それはやや控えめです。好ましい方法がありますか?

+0

'bool'が移動するための方法ですが、私は' not'ハックではない:) –

+1

@CraigBurgler好き - 'ないnot'ハックJavascriptでたくさん使われています...「何でも」は、「私に「何でも」の真偽値を与える」というかなりの標準的なイディオムです。私はPythonでそれを見たことがありません:-) – mgilson

+0

また、 'else else False'ならば...ですが、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

関連する問題