真(true)と偽(false)

広告

全てのオブジェクトは真か偽に分類することが可能です。オブジェクトが真か偽かの判定は次のようになっています。

数値型の場合は0(0、0.0、0jなど)は偽(false)、0以外は真(true)
文字列型の場合は空文字列("")は偽(false)、""以外は真(true)
空のタプル()、空のリスト[]、空のディクショナリ{}は偽(false)
BooleanType型の「True」は真(true)
BooleanType型の「False」は偽(false)
NoneType型の「None」は偽(false)

ざっくりと言えば数値の「0」や空文字は偽(false)、それ以外は真(true)と考えても構いません。

真(true)の代表的なオブジェクトは「True」です。また「True」に対するオブジェクトとして偽である「False」が用意されています。「True」や「False」は数値が必要とされる式の箇所で使用される場合、それぞれ「True」は数値の「1」、「False」は数値の「0」と同じように扱うことが出来ます。

「if」文でも使用する条件式は、条件式が成立する場合は数値の「1」を返し、成立しない場合は数値の「0」を返します。条件式の結果取得したオブジェクトが真の場合、次のブロック内の文を実行します。なお条件式の代わりにオブジェクトそのものを記述しても構いません。その場合は記述されたオブジェクトが真か偽かを判別しブロック内の文を実行するかどうかを判断します。

if True:
  print "Always True"

上記の場合は、条件式の箇所にオブジェクトである「True」が記述されています。「True」は真(true)ですのでこの「if」文は必ずブロック内の文を実行します。

サンプルコード

では実際に試してみます。

#coding: UTF-8

print "True = ", True
print "False = ", False

print "True + 3 = ", True + 3

if True:
  print "Always True"

上記を「test3-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

真(true)と偽(false)

( Written by Tatsuo Ikura )