本記事では、Pythonにおけるif文の書き方を解説します。
もくじ
if文の基本
Pythonでは、以下のようにif文を書きます。
if 条件文1:
処理1
elif 条件文2:
処理2
else:
処理3
条件文1,2には、後述の条件式を指定します。
また、上の例文では、elif 条件文2:のみで記載しましたが、
elif 条件文:は、if 条件文: と else: の間に無制限に書くことができます。
具体的には以下のように書きます。
if a == 1:
print(“a は 1”)
elif a == 2:
print(“a は 2”)
else:
print(“a は 1,2以外)
条件文
比較演算子
Pythonで使用可能な条件文として、比較演算子を使うものがあります。
比較演算子の計算結果は、bool値でTrue、Falseのいずれかとなります。
比較演算式 | 意味 |
a < b | 小なり。aがbより小さい場合にTrue、それ以外はFalse |
a > b | 大なり。aがbより大きい場合にTrue、それ以外はFalse |
a == b | イコール。aがbと同じ値の場合にTrue、それ以外はFalse |
a >= b | 大なりイコール。aがb以上の場合にTrue、それ以外はFalse |
a <= b | 小なりイコール。aがb以下 |
a != b | ノットイコール。aがbと異なる値 |
a is b | オブジェクトに対するイコール。 a が b と同じオブジェクトである |
a is not b | オブジェクトに対するノットイコール。 a が b と異なるオブジェクトである |
a in b | 複数の要素を持つbにaが含まれる。 bはリストやタプルを使用する。 |
a not in b | 複数の要素を持つbにaが含まれない。 bはリストやタプルを使用する。 |
比較演算子を使った条件文の計算結果がTrueとなった場合対象の分岐処理を実行し、
Falseとなった場合は条件が成り立ちません。
例えば、以下のソースコードの例を見てください。
a が 1 のとき、
a == 1はTrueとなり、if文内の処理 “a は 1 である” を表示する処理を行いますが、
a > 2はFalseとなり、if文内の処理 “a は 2 より大きい” を表示する処理を行いません。
# a が 1のとき
a = 1
if a == 1:
print(“a は 1 である”)
if a > 2:
print(“a は 2 より大きい”)
論理演算子
Pythonで使用可能な条件文として、論理演算子を使うものがあります。
こちらも比較演算式と同様計算結果がbool型でTrue、Falseのいずれかになります。
論理演算式 | 意味 |
not a | a がTrueならFalse、FalseならTrue |
a and b | a かつ b がTrueならTrue、それ以外はFalse |
a or b | a または b がTrueならTrue、それ以外はFalse |
計算の結果、Trueになった場合、対象の分岐処理を行います。
演算子同士を混在させることもできる
ここに来るまでに比較演算子と論理演算子の2つの演算子について述べてきましたが、
これらの演算子以外にも以下のような演算子があり、条件文に含めることが可能です。
優先度 | 演算式 | 意味 |
1 | a ** b | べき乗 |
2 | -a | マイナスの単項演算子 |
2 | +a | プラスの単項演算子 |
2 | ~a | ビット反転の単項演算子 |
3 | a * b | かけ算 |
3 | a @ b | 行列のかけ算 |
3 | a // b | わり算 (結果をint型) |
3 | a / b | わり算 (結果はfloat型) |
3 | a % b | わり算の余り |
4 | a + b | たし算 |
4 | a – b | ひき算 |
5 | a << b | 左シフト演算 |
5 | a >> b | 右シフト演算 |
6 | a & b | ビット論理積演算 |
7 | a ^ b | ビット論理排他演算 |
8 | a | b | ビット論理和演算 |
9 | 上述の通り (比較演算子) | 比較演算子 |
10 | 上述の通り (論理演算子) | 論理演算子 |
例えば、以下のように演算子を混在させた条件文を書くこともできます。
a = b = c = d = e = f = g = 1
if a + b - c * d / e == f ** g:
print(“a + b - c * d / e は f ** g と等しい”)
if a == b and a == c or not a == d:
print(“a == b and a == c or not a == d と等しい”)
計算される順番は、上の表に書いた優先度の通りです。
優先度の数字が小さいほど先に計算が行われます。
コメント