プログラミングで分岐を作ろう!Pythonでのif文の書き方

プログラミングを学ぶ上で、必ず知っておきたいのがif文の使い方です。
if文は条件分岐を作る上で必ず必要になるもので、これを使わずしてプログラミングを行うことは不可能です。

逆に言えば、このif文の使い方をマスターすれば、かなりのものがプログラムできるようになります。
たとえば、アドベンチャーゲームによくある選択式のストーリー分岐も、このif文さえマスターすれば実装できるようになります。

また、Webアプリケーションの製作においても必ず使う概念ですので、if文の使い方はきちんと覚えておくようにしましょう。

if文の基本的な文法

Pythonで条件分岐を記述するためのif文の基本的な文法はこのような形になります。

if 条件式:
    処理内容

インデントに注意しよう

このときに気をつけていただきたいのが「インデント」です。
Pythonは文法が厳格なのですが、if文を書く時には、条件式の下に書く処理内容の部分は段落を一段下げなければなりません。

インデントの入れ方は、Tabキーを一回押すか、半角スペースを4つ入れるとOKです。

もしインデントを入れずにif文を書いた場合はこのように「IndentationError: expected an indented block」というエラーメッセージが表示されます。

if True:
print('OK')
  File "<stdin>", line 2
    print('OK')
        ^
IndentationError: expected an indented block

このエラーはif文に限らず、for文やwhile文など、インデントが必要なところで適切にインデントを入れていなければ表示されるので覚えておきましょう。

if文を実演してみましょう

それでは、前回解説した「変数」を使って、if文を実際に動かしてみましょう。

この例では、「number」という変数に色々な数字を入れて、if文がどのように動くのかを確かめてみましょう。

このif文は、number が50より大きかった場合に「数値は50以上です」と表示されるプログラムです。

number = 100

 if number > 50:
     print('数値は50以上です')

数値は50以上です

それでは、numberに50より小さな数字を入れてみるとどうなるでしょうか。
このように、何もメッセージは表示されません。

number = 10

 if number > 50:
     print('数値は50以上です')

これがif文の基本的な使い方です。
それでは次は、これを踏まえて条件分岐をやってみましょう。

条件分岐「else」の使い方

条件分岐でまず使うのが、if ~ elseという記法です。elseの下にifの条件式に当てはまらなかった場合の処理を記述します。
このように書くと、条件式に当てはまった場合には処理内容Aが実行され、当てはまらなかった場合には処理内容Bが実行されます。

if 条件式:
    処理内容A
else:
    処理内容B

elseの処理内容の部分にもインデントが必要なので、気をつけてください。
インデントを入れていない場合、エラーが発生します。

それでは、number変数を使ってelseの動きを確かめてみましょう。
ifの条件式に当てはまらなかった場合に「数値は50以下です」と表示されます。

number = 30

 if number > 50:
     print('数値は50以上です')
 else:
     print('数値は50以内です')

数値は50以内です

それでは次に、numberに100を入れてみましょう。
すると今度は「数値は50以上です」というメッセージが表示され、処理内容が分岐していることがわかります。

number = 100

 if number > 50:
     print('数値は50以上です')
 else:
     print('数値は50以内です')

数値は50以上です

これでif ~ else文を使った基本的な条件分岐ができるようになりましたね!
けれども、これでは2つの分岐までしかできません。
3つ以上の分岐をするにはどのように書けばいいのでしょうか。
そこで登場するのが「elif」です。

3つ以上の条件分岐の作り方

3つ以上の条件分岐を実現するには、else ifという記法を使います。
if ~ elif ~ elseを使った条件分岐は以下のように書きます。

if 条件式A:
    処理内容A
elif 条件式B:
    処理内容B
else:
    処理内容C

また、elif はいくつでも書くことができ、4つや5つの分岐も簡単につくれます。

if 条件式A:
    処理内容A
elif 条件式B:
    処理内容B
elif 条件式C:
    処理内容C
elif 条件式D:
    処理内容D
else:
    処理内容E

それでは、これらを踏まえてelif を使った条件分岐の動きを見ていくことにしましょう。

また同じようにnumberという変数に色々な数字を入れて試してみます。
numberを10にすると、最初の条件式に一致し、「数値は10です」というメッセージが表示されます。

number = 10

if number == 10:
    print('数値は10です')
elif number == 20:
    print('数値は20です')
else:
    print('10と20以外の数値です')

数値は10です

numberを100にしてみると、ひとつめの条件式にも当てはまらず、ふたつめの条件式とも一致しないため、elseの処理内容が実行されます。

number = 100

if number == 10:
    print('数値は10です')
elif number == 20:
    print('数値は20です')
else:
    print('10と20以外の数値です')

10と20以外の数値です

最後に、numberを20にしてみましょう。
すると2つ目の条件式と一致し、「数値は20です」と表示されます。

number = 20

if number == 10:
    print('数値は10です')
elif number == 20:
    print('数値は20です')
else:
    print('10と20以外の数値です')

数値は20です

まとめ

いかがでしたでしょうか!
ここまでの内容を理解できればPythonでのif文はほとんどマスターできたと思います。

覚えることは4つだけ!

  • if
  • else
  • elif
  • インデント

この4つをキッチリ押さえていれば大丈夫です。

if文を覚えると、本格的なプログラミングができるようになってくるので、いよいよテンションが上ってきますね!
if文はどれだけ上級者になっても使うものなので、ここでしっかりと基礎を固めておいてください。

それでは、今回の記事はこのあたりでおしまいです。
最後まで読んでくださって、ありがとうございました!