Pythonでブール値を使用するにはどうすればよいですか?


109

Pythonには実際にはブール値が含まれていますか?私はあなたができることを知っています:

checker = 1
if checker:
    #dostuff

しかし、私はまったく知識がなく、Javaでブール値を見るのを楽しんでいます。例えば:

Boolean checker;
if (someDecision)
{
    checker = true;
}
if(checker)
{
    //some stuff
}

Pythonにはブールのようなものはありますか?ドキュメントにそのようなものを見つけることができないようです。


1
変数の作成時に型を宣言する必要はありません。「checker = False」で十分です。
Dominic Bou-Samra、

10
@Dominic Bou-Samra:「型を宣言する必要がない」?それはまったく真実ではありません。「変数の型を宣言することはできません」と言うべきだと思います。
S.Lott、2009年

2
@ S.Lott "変数の型を宣言することはできません" ...型キャストできるのでまだ真ではありませんsome_var = int("1234")...その行は明示的に設定しますsome_var=>int
Kolob Canyon

回答:


142
checker = None 

if some_decision:
    checker = True

if checker:
    # some stuff

[編集]

詳細情報:http : //docs.python.org/library/functions.html#bool

必要なときにに1変換さTrueれるため、コードも機能します。実際、Pythonには(古いCのように)長い間ブール型がありませんでした。プログラマーの中には、ブール値の代わりに整数を使用しているプログラマーもいます。


17
通常、 'if'ではなくchecker =(some_decision)(たとえば、checker =(a <b))を使用する方が簡単です。
MAK、

11
このスニペットは少し誤解を招くものです...テストする前に「チェッカー」を定義する必要があります。OPが先に定義していますが、例ではチェッカー=なしが絶対に必要です。そうしないと、UnboundLocalErrorが発生します
dprogramz

Pythonのブール値は整数です。TrueおよびFalse拡張への参照であるintオーバーライドを持つオブジェクト__str__とは__repr__
Mad Physicist

Pythonのブール値は整数ではありません。1 is not True、しかし1 == True
BallpointBen 2018

@BallpointBen:これらはint、で示されるように、型のインスタンスであるという一般的な意味での整数isinstance(True, int)です。
BastienLéonard18年

93

ブールビルトインは大文字で記述されています:TrueおよびFalse

あなたが行うことができますことにも注意してくださいchecker = bool(some_decision)速記のビットとして- boolしか返されますTrueFalse

それは、将来の参考のために知って良いことだクラスが定義する__nonzero____len__になりますTrueか、Falseこれらの関数の結果に応じて、しかし、ほぼすべての他のオブジェクトのブール結果はとなりますTrue(以外のNoneオブジェクト、空のシーケンス、および数値のゼロ)。


1
洞察をありがとうございました。人気投票が他の回答に移ったため、バスティエンに「承認された回答」を授与しました。しかし、あなたは最も役に立ちました!:)
フェデラー

23
勇気:あなたが最も役立つと思う答えを受け入れない点は何ですか?別の回答がさらに賛成されているかどうかはまったく関係ありません。
tzot 2009

2
そして、人気投票もこの答えと一緒です。投票を変更することを検討してください。
Alastor Moody 2014

12

True ...そして False明らかに。

それ以外の場合Noneは、整数0および浮動小数点数と同様に、False と評価されます0.0(ただし、そのような浮動小数点数は使用しません)。また、空のリスト[]、空の連音符()、空の文字列、''または""Falseに評価されます。

関数を使って自分で試してくださいbool()

bool([])
bool(['a value'])
bool('')
bool('A string')
bool(True)  # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)

等..


5

ブール型はドキュメントで定義されています:http :
//docs.python.org/library/stdtypes.html#boolean-values

ドキュメントから引用:

ブール値は、FalseとTrueの2つの定数オブジェクトです。それらは真理値を表すために使用されます(ただし、他の値もfalseまたはtrueと見なすことができます)。数値コンテキストでは(たとえば、算術演算子の引数として使用される場合)、それぞれ整数0および1のように動作します。組み込み関数bool()を使用して、値を真理値として解釈できる場合は、任意の値をブール値にキャストできます(上記の真理値テストを参照してください)。

それらは、それぞれFalseおよびTrueと記述されています。

したがって、Javaコードで中括弧を削除し、に変更trueするTrueと、大丈夫です:)



0

宣言するJavaとは異なりboolean flag = True、Pythonでは宣言するだけですmyFlag = True

Pythonはこれをブール変数として解釈します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.