プログラミング言語の種類に関係なく、if文は値など特定の条件に応じた処理の振り分けが可能になるのでマスターしておくと良いでしょう。Pythonにおいても例外ではなく、多種多様な場面で活用できます。ここではPythonにおけるif文の使い方について、サンプルとセットで紹介していきます。
Pythonで使われるif文とは何か?
まずは、そもそもif文とはどのようなコードなのか見ていきます。簡単に言えば、条件分岐する際に使用されるコードのことです。
条件で処理を使い分ける際に使用
if文とは特定の条件で処理を使い分けたいときに使用するコードのことです。例えば、年収の分布を作る際に、400万円以上か未満かで分けたいとします。ここでif文を使用すれば、年収400万円以上はA、400万円未満であればBという形で処理できるわけです。
プログラミングの世界では、真偽で条件の振り分けを行います。if文の条件を満たしていれば真(True)になり、満たしていないものは偽(False)という扱いになります。
if文の表記方法
Pythonにおいてif文の記述の基本は「if 条件式:」です。条件式の部分で振り分けの基準となる論理記号を用います。たとえば「==」は等しいもの、「>=」は以上、「>」ならより大きい、「<=」が以下、「<」は未満を振り分けるときに用いられる記号です。いずれも、if文を記述するときにしばしば使われる記号なので、頭に入れておくと良いでしょう。
具体的なサンプルを挙げてみていきましょう。たとえばnum=200というコードがあったとします。この中で「100以上」という条件で分岐させたければ、以下のようなコードを記述すればいいでしょう。
num = 200if num >= 100:
このようなソースコードを記述して出力すると、「Numは100以上です」と出力されるはずです。また、たとえばNumを50にしてみると、このままのソースコードではどうなるでしょうか。
num = 50if num >= 100:
この場合、Numの中で100以上に該当する要素はありません。すると出力されるのは「if文の処理ではありません」というメッセージだけが表示されるでしょう。
ほかのプログラミング言語との違い
if文はPython以外のプログラミング言語でも使用できるコードです。しかし、ほかのプログラミング言語では異なる表現を用いるので、注意してください。
if文の条件に当てはまった際に実行される処理の集まりのことをブロックといいます。たとえばJavaなどのプログラミング言語の場合、ブロックを規定する際には{}を使用します。しかしPythonの場合、インデントといって字下げをするだけでブロックの表現が可能です。
Pythonの場合、インデントを使って複数行にまたがった処理を記述しても問題ありません。もし、Javaなどほかのプログラミング言語でこのような処理をすると、コンパイルエラーになってしまいます。{}の記述の必要がなくなるので、Pythonはほかのプログラミング言語と比較して簡潔に処理できるといえるでしょう。
ただしif文の中にさらにif文をつかって、条件分岐するのであればインデントをさらに下げる必要があります。またインデントの空白数がずれてしまうと同じブロック扱いにならず、エラーになってしまう点にも注意してください。
複数の条件分岐を行う場合
if文を用いるにあたって、複数の処理を行うのであれば、複数の処理記号を用いて記述する必要があります。ここではif文作成の際によく用いられる構文をいくつかピックアップしてみました。
if else構文
if文の条件式だけであれば、Trueの時のみの処理になってしまいます。しかし、もしFalseの場合の処理を指定したければ、if elseを使用しなければなりません。基本的な記述は、以下の通りです。
if 条件式:else:
このような記述をすることで、条件がTrueだけでなく、Falseだった場合の処理もあわせて行えます。具体的なサンプルで見ていきましょう。
value = int(input(‘1~10の数を入力してください’))という配列があったと仮定しましょう。この下に「if value == 1」と記述すれば、1だった場合「1です」と出力されます。しかし、もし1でなかった場合も処理をしたければ、以下のようなソースコードを記述してください。
value = int(input('1~10の数を入力してください'))if value == 1: print('1です')else: print('1ではありません')
このように設定すれば、1ではない数字だった場合にはelse以降の設定が実行されます。すなわち、「1ではありません」と出力されるわけです。
if elif else構文
if elseだけでなく、さらに条件分岐を追加したいときに用いられる構文です。if elif else構文の書き方ですが、以下のスタイルがPythonでは基本形になります。
if 条件式1:条件式1を満たした場合に実行される処理elif 条件式2:条件式1を満たさず、条件式2を満たしている場合に実行される処理else:上の2つの条件式いずれも満たしていなかった場合に実行される処理
先ほど紹介したvalue = int(input(‘1~10の数を入力してください’))の配列を使って、if elif else構文を使って記述してみましょう。たとえば1だった場合に「1です」、5だった場合に「5です」と出力できるようにするためには以下のようなソースコードを記述してください。
value = int(input('1~10の数を入力してください'))if value ==1: print('1です')elif value == 5: print('5です')else: print('1でも5でもありません')
このように設定すると1だった場合にはif、5だった場合にはelifで処理されます。そして、1でも5でもなかった数字であれば、elseの処理が実行されるでしょう。
elifを複数設定したい
elifは複数設定することも可能です。そのやり方は、elifの下にelifを記述するだけです。ここでも先ほど紹介した「value = int(input(‘1~10の数を入力してください’))」の配列で見ていきましょう。1と5のほかに7でも出力できるように設定すると仮定しましょう。
value = int(input('1~10の数を入力してください'))if value == 1: print('1です')elif value == 5: print('5です')elif value == 7: print('7です')else: print('1でも5でも7でもありません')
このように記述すれば1の場合には「1です」、5の場合「5です」、7の場合「7です」と出力されます。その他の数字であれば「1でも5でも7でもありません」と出力されるわけです。
elifについていくつまで追加できるかは、とくに上限は設定されていません。しかし、あまり多く記述してしまうと可読性の部分で問題が起きるかもしれません。その結果、処理速度が低下して、なかなか割り振りが進まなくなる恐れもあります。
いくつもの条件を細かく設定して割り振りしたければ、辞書を使用した記述方法があるので、そちらを活用すると良いでしょう。
Pythonにおけるif文のまとめ
if文は条件分岐して、要素を割り振りする場合に活用できるコードです。if文がマスターできれば、プログラムの挙動がコントロールできるようになるでしょう。
Pythonでプログラミングを行うにあたって、if文は意外と頻繁に用いられます。ほかの構文の中にネストして使うことで、ループ処理なども行えるからです。もしif文を正しく理解できていないと、プログラムの挙動を制御できなくなり、手に負えない状態になるかもしれません。とくに、ここで紹介した記号と何を意味するかについては、しっかりマスターしておきたいところです。if文をマスターすることができれば、Pythonでより多くのことができるようになるでしょう。