Python - 条件分岐の書き方
if 文
if 文の基本構造は以下の通りです。条件式や else の末尾には : を付ける必要があります。また、Python の else if は elif と略称のように表記し、複数定義しても問題ありません。条件式が1つだけの場合、elif や else のブロックは省略することができます。
if 条件式 1:条件式 1 が True のときに行う処理elif 条件式 2:条件式 1 が False で、条件式 2 が True のときに行う処理...else:すべての条件式が False のときに行う処理
if 文の基本構造
比較演算子による条件指定
比較演算子による条件指定は、結果が True、または False を返す演算で条件を指定します。Python の比較演算子は以下のとおりです。
x < yxがyより小さければTruex <= yxがy以下であればTruex > yxがyより大きければTruex >= yxがy以上であればTruex == yxとyの値が等しければTruex != yxとyの値が等しくなければTruex is yxとyが同じオブジェクトであればTruex is not yxとyが異なるオブジェクトであればTruex in yxがyに含まれていればTruex not in yxがyに含まれていなければTrue
以下は比較演算子による条件指定を行った if 文のサンプルコードです。
if num > 100:print('100 < num')elif num > 50:print('50 < num <= 100')elif num > 0:print('0 < num <= 50')elif num == 0:print('num == 0')else:print('num < 0')
比較演算子による条件指定を行った
if 文のサンプルコードPython では、他の言語とは異なり比較演算子を連結して記述することもできます。
if 50 < num < 100:print('50 < num < 100')else:print('num <= 50 or num >= 100')
比較演算子を連結した
if 文のサンプルコード リストや文字列に特定の要素が含まれているかを条件にする場合は in、または not in を使用します。
s = 'pineapple'if 'apple' in s:print('apple が含まれています')else:print('apple が含まれていません')
比較演算子
in を使用したサンプルコード論理演算子による条件指定
論理演算子による条件指定によって、複数の条件の論理積 (and)、論理和 (or)、否定 (not) を扱うことができます。
x and yxかつyがTrueであればTruex or yxまたはyがTrueであればTruenot xxがTrueであればFalse、xがFalseであればTrue
以下は論理演算子による条件指定を行った if 文のサンプルコードです。
if 50 < num and num < 100:print('50 < num < 100')else:print('num <= 50 or num >= 100')
論理演算子による条件指定を行った
if 文のサンプルコードbool 型ではない条件指定
if 文の条件式には、bool 型 (True, False) ではない数値やリストなどのオブジェクトを指定することもできます。
if 10:print('True')# Trueif [0, 1, 2]:print('True')# True
bool 型ではない条件指定を行った if 文のサンプルコード Python の if 文の条件式において、False とみなされるのは以下のオブジェクトです。以下のオブジェクト以外は、すべて True とみなされます。
bool型のFalseNone- 数値 (
int型やfloat型) の0, 0.0 - 空の文字列 (
'') - 空のコンテナ(リスト、タプル、辞書など) (
[], (), {})
上記の仕様を利用すると、コンテナが空であるか調べるコードがシンプルに記述できます。
if list:print('list is not empty')else:print('list is empty')
bool 型ではない条件指定を行った if 文でコンテナが空かどうかを調べるサンプルコード