if <boolean> :
# do this
boolean は True または False でなければなりません。
それでなんで
if "poi":
print "yes"
出力: はい
「poi」はTrueまたはFalseではないため、 yes がprintingである理由がわかりませんでした。
if <boolean> :
# do this
boolean は True または False でなければなりません。
それでなんで
if "poi":
print "yes"
出力: はい
「poi」はTrueまたはFalseではないため、 yes がprintingである理由がわかりませんでした。
式からブール値が必要な場合、Python は式の「真実性」を評価するために最善を尽くします。
文字列の規則では、空の文字列が考慮されFalse
、空でない文字列が考慮されTrue
ます。他のコンテナにも同じルールが適用されるため、空の辞書またはリストが考慮されFalse
、1 つ以上のエントリを持つ辞書またはリストが考慮されTrue
ます。
None
オブジェクトも false と見なされます。
の数値0
は false と見なされます (文字列値の'0'
は true と見なされます)。
他のすべての式が考慮されTrue
ます。
詳細 (ユーザー定義型が真偽を指定する方法を含む) は、http: //docs.python.org/release/2.5.2/lib/truth.htmlにあります。
Python では、空の文字列を除くすべての文字列のデフォルトはTrue
つまり、
if "MyString":
# this will print foo
print("foo")
if "":
# this will NOT print foo
print("foo")
ここで起こっているのは、Python の暗黙的bool()
コンストラクターif
の,の後の補足ですif
。このコンテキストでは、コードは次と同等です
if bool("hello"):
print "yes"
Pythonコンストラクターによるとbool(x)
、何でも受け入れ、以下のケースに基づいて真実性を決定します
0
はFalse
すべてTrue
0.0
はFalse
すべて True です`[]
はFalse
すべてTrue
{}
はFalse
すべてTrue
()
はFalse
すべてTrue
“"
はFalse
すべて のみ ですTrue
。bool(“False”)
に戻ることに注意してくださいTrue
上記のケースのログは次のとおりです
Python 3.4.3 (default, Feb 25 2015, 21:28:45)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0.0)
False
>>> bool(0.02)
True
>>> bool(-0.10)
True
>>> bool([])
False
>>> bool([1,2])
True
>>> bool(())
False
>>> bool(("Hello","World"))
True
>>> bool({})
False
>>> bool({1,2,3})
True
>>> bool({1:"One", 2:"Two"})
True
>>> bool("")
False
>>> bool("Hello")
True
>>> bool("False")
True