Python - 条件分岐の書き方

if 文

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

if 条件式 1:
    条件式 1 が True の処理
elif 条件式 2:
    条件式 1 が False で、条件式 2 が True の処理
...
else:
    すべての条件式が 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 文のサンプルコードです。

a = 12
if a > 10:
    print("a は 10 より大きい")
elif a == 10:
    print("a は 10")
else:
    print("a は 10 未満")
比較演算子による条件指定を行った if 文のサンプルコード

Python では、比較演算子を連結して記述することもできます。

if 10 < num < 20:
比較演算子を連結した if 文のサンプルコード

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

str = "abc"

if "a" in str:
    print('a が含まれています')
else:
    print('a が含まれていません')
比較演算子 in を使用したサンプルコード

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

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

論理積
x かつ yTrue であれば True
True  and True  # True
True  and False # False
False and True  # False
False and False # False
num = 20

print(bool(num > 10 and num < 30)) # True
論理和
x または yTrue であれば True
True  or True  # True
True  or False # True
False or True  # True
False or False # False
num = 20

print(bool(num > 10 or num < 15)) # True
否定
xTrue であれば FalsexFalse であれば True
not True  # False
not False # True
num = 20

print(bool(not num > 30)) # True

bool 型ではない条件指定

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

if 10:
    print('True') # True

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

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

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

上記の仕様を利用すると、以下のように記述できます。

if list:
    print('list は空配列ではありません')
else:
    print('list は空配列です')
bool 型ではない条件指定を行った if 文でコンテナが空かどうかを調べるサンプルコード
0
SHARE
Twitter
@murashun
お問い合わせ
murashun@gmail.com
ご質問(マシュマロ)
https://marshmallow-qa.com/murashun
ご支援(Stripe)
https://checkout.stripe.com/