ある条件を満たす場合には処理Aを行い、そうでない時には処理Bを行うといった具合に処理を枝分かれさせる処理を条件分岐といいます。Pythonではこの条件分岐処理を書く際にif文と呼ばれる構文を使います。
目次
条件分岐とは
ある条件を満たす場合には処理Aを行い、そうでない時には処理Bを行うといった具合に処理を枝分かれさせる処理を条件分岐といいます。
条件分岐はプログラムでよく使われる処理の1つです。
例えば天気予報アプリでは晴れの日には晴れマークを表示、雨の日は雨マークを表示という処理が必要になりますし、筆記テストを採点して合否を判定するプログラムでは一定以上の点数なら合格、そうでなければ不合格、という処理が必要になります。
条件分岐処理を使ってみよう
条件分岐を記述するにはif文を使い次のように記述します。
if 条件式A: # 条件式AがTrueの時に実行される処理 # 処理は何行でも書くことができます elif 条件式B: # 条件式AがFalseで条件式BがTrueの時に実行される処理 else: # 全ての条件がFalseの時に実行される処理
if、elif、elseの次の行が字下げ(インデント)されていますが、これはPythonの特徴の1つで、実行する処理を1つ前の条件式から必ずインデントする必要があります。
他の言語では必ずしもこの限りではありませんが、このように条件式を使った処理を行う場合、可読性の面からインデントするのが一般的です。なお、PythonではインデントはTabキーまたは半角スペース4つです。
このように条件が成立した場合の処理や成立しなかった場合の処理のかたまり(インデントされている場所)をコードブロックと呼び、同じインデントの深さで揃えたコードは同じコードブロックに属しているとみなされます。
比較演算子
では処理を分岐させるための条件式の書き方について見ていきましょう。
比較演算子
次の比較演算子と呼ばれるものを使います。
条件 | 比較演算子 |
---|---|
左辺と右辺が等しい | == |
左辺より大きい | < |
左辺より小さい | > |
左辺以上 | <= |
左辺以下 | >= |
左辺と右辺が等しくない | != |
初心者のうちに間違いやすいものとしてイコール記号があげられます。
1つだけ書くと代入演算子となり左辺に右辺を代入、という意味になってしまいます。比較演算子として左辺と右辺が等しいかどうかを判定する場合はイコール記号2つなので間違えないようにしましょう。
それでは実際に比較演算子を使った例を見てみましょう。
次のコードは標準入力からテストの点数を受け取ってscore変数に代入し、その数値が80以上なら「素晴らしい」、60よりも大きければ「合格」、どちらでもなければ「不合格」と表示するプログラムです。
score = int(input("テストの点数は?")) if score >= 80: print("素晴らしい!") elif score > 60: print("合格") else: print("不合格")
実際に書いて実行してみてください。
入力待ちの状態となりますので試しに65と入力した結果は次のようになりました。
C:\Users\User\Desktop\python_lessons>python test.py テストの点数は?65 合格
65は80以上ではないため1つ目の処理は行われず、60よりも大きいので2つ目の条件式を満たしていることになり「合格」と表示されていることがわかります。
これが条件分岐処理です。
他の数値を入力したり条件を変更して色々試してみてください。