Python - 条件分岐の書き方

if 文

if 文の基本構造は以下の通りです。条件式や else の末尾には : を付ける必要があります。また、Python の else ifelif と略称のように表記し、複数定義しても問題ありません。条件式が1つだけの場合、elifelse のブロックは省略することができます。

  1. if 条件式 1:
  2. 条件式 1 True のときに行う処理
  3. elif 条件式 2:
  4. 条件式 1 False で、条件式 2 True のときに行う処理
  5. ...
  6. else:
  7. すべての条件式が False のときに行う処理
if 文の基本構造

比較演算子による条件指定

比較演算子による条件指定は、結果が True、または False を返す演算で条件を指定します。Python の比較演算子は以下のとおりです。

x < y
xy より小さければ True
x <= y
xy 以下であれば True
x > y
xy より大きければ True
x >= y
xy 以上であれば True
x == y
xy の値が等しければ True
x != y
xy の値が等しくなければ True
x is y
xy が同じオブジェクトであれば True
x is not y
xy が異なるオブジェクトであれば True
x in y
xy に含まれていれば True
x not in y
xy に含まれていなければ True

以下は比較演算子による条件指定を行った if 文のサンプルコードです。

  1. if num > 100:
  2. print('100 < num')
  3. elif num > 50:
  4. print('50 < num <= 100')
  5. elif num > 0:
  6. print('0 < num <= 50')
  7. elif num == 0:
  8. print('num == 0')
  9. else:
  10. print('num < 0')
比較演算子による条件指定を行った if 文のサンプルコード

Python では、他の言語とは異なり比較演算子を連結して記述することもできます。

  1. if 50 < num < 100:
  2. print('50 < num < 100')
  3. else:
  4. print('num <= 50 or num >= 100')
比較演算子を連結した if 文のサンプルコード

リストや文字列に特定の要素が含まれているかを条件にする場合は in、または not in を使用します。

  1. s = 'pineapple'
  2. if 'apple' in s:
  3. print('apple が含まれています')
  4. else:
  5. print('apple が含まれていません')
比較演算子 in を使用したサンプルコード

論理演算子による条件指定

論理演算子による条件指定によって、複数の条件の論理積 (and)、論理和 (or)、否定 (not) を扱うことができます。

x and y
x かつ yTrue であれば True
x or y
x または yTrue であれば True
not x
xTrue であれば FalsexFalse であれば True

以下は論理演算子による条件指定を行った if 文のサンプルコードです。

  1. if 50 < num and num < 100:
  2. print('50 < num < 100')
  3. else:
  4. print('num <= 50 or num >= 100')
論理演算子による条件指定を行った if 文のサンプルコード

bool 型ではない条件指定

if 文の条件式には、bool 型 (True, False) ではない数値やリストなどのオブジェクトを指定することもできます。

  1. if 10:
  2. print('True')
  3. # True
  4. if [0, 1, 2]:
  5. print('True')
  6. # True
bool 型ではない条件指定を行った if 文のサンプルコード

Python の if 文の条件式において、False とみなされるのは以下のオブジェクトです。以下のオブジェクト以外は、すべて True とみなされます。

  • bool 型の False
  • None
  • 数値 (int 型や float 型) の 0, 0.0
  • 空の文字列 ('')
  • 空のコンテナ(リスト、タプル、辞書など) ([], (), {})

上記の仕様を利用すると、コンテナが空であるか調べるコードがシンプルに記述できます。

  1. if list:
  2. print('list is not empty')
  3. else:
  4. print('list is empty')
bool 型ではない条件指定を行った if 文でコンテナが空かどうかを調べるサンプルコード

関連記事