【Python】if-elseやelse ifの使い方【初心者必見】

Python

if-else,else ifの使い方がわからない人「条件分岐のif文の使い方はわかったけど、もし条件式が成り立たない場合に何かの処理を行いときはどう記述すればいいの?あと、複数の条件分岐を作りたいけど作り方がわからない。他の言語でいうelse ifを使えないというのを聞いたことがある。」

こういった疑問に答えます。

本記事でわかること

  • if-elseの使い方【条件式が成り立たない場合の処理文も記述できる】
  • else if(elif)の使い方【複数の条件分岐を作る方法】

  

【Python】if-else,else ifの使い方【初心者必見】

 

今回は分岐条件のif文についてif-elseとelse if(elif)の基本的な使い方を解説していきます。if文の書き方は勉強したけど、①条件が成り立たない場合の処理の書き方②複数の条件分岐を作る方法がわからない方がこの記事を読むことでどちらもマスターできるようになります。

 

if-elseの使い方

条件分岐if-elseは以下のように書きます。

if 条件式 :
    条件式がtrueの時に実行する処理

else:
    条件式がfalseの時に実行する処理

例

num = 3
if num == 3 :
    print('true')
    #true

else:
    print('false')

上記のコードではif文の条件式が成り立っている(true)ため’true’が出力されています。もし条件式が成り立たない場合(false)は’false’が出力されます。

 

初心者がやってしまうミス2つ

  • ミス① : インデント(空白)忘れ
  • ミス② : コロン忘れ

  

ミス① : インデント忘れ

インデント(空白)のミスとは以下のようなものです。

num = 3
if num == 3:
print('true')
#true

else:
print('false')

間違えているのはprint(‘true’),print(‘false’)の行に空白(インデント)を入れてないことです。ご存知の通り、Pythonでは同じ数の空白が空いている行を1つのブロックとします。適切な空白の数は半角で4回です。

つまり、インデントを意識して記述したコードが以下のコードです。

num = 3
if num == 3 :
    print('true')
    #true

else:
    print('false')

厳密に言うと、コメント文はインデントする必要がありませんがインデントした方がコードがみやすくなるため必ずインデントするようにしましょう。

 

ミス② : コロン忘れ

コロン忘れのミスとは以下のようなものです。

num = 3
if num == 3 
    print('true')
    #true

else
    print('false')

‘num == 3’と’else’の後にコロン( : )が必要です。コロンを記述しない場合はエラーが起こりプログラムを実行することが出来ません。

正しくは以下のように記述しましょう。

num = 3
if num == 3:
    print('true')
    #true

else:
    print('false')

 

コロンを記述する際に条件式が見やすいように以下のように記述しても問題ありません。

コロンを記述する際の空白はいくら空けても問題ありません。

num = 3
if num == 3 :
    print('true')
    #true

else:
    print('false')

 

else if(elif) の使い方

複数の条件分岐を作成したいときは以下のように書きます。

if 条件式1 :
    条件式1が成り立つときに実行する処理

elif 条件式2 :
    条件式2が成り立つときに実行する処理

elif 条件式3 :
    条件式3が成り立つときに実行する処理

else:
    条件式すべてが成り立たないときにの時に実行する処理

num = 3
if num == 1 :
    print('条件式1')

elif num == 2 :
    print('条件式2')

elif num == 3 :
    print('条件式3')
    #条件式3

else:
    print('false')

 

初心者がやってしまうミス2つ

  • ミス① : else ifと記述【elifが正しい】
  • ミス② : 条件に当てはまる処理文はすべて実行されるという誤解

ミス① : else ifと記述【elifが正しい】

初心者はよく’elif’のことを’else if’と記述してしまいます。これは、他の言語では’elif’に相当するのが’else if’だからです。ただし、Pythonでは’elif’を正しく使うようにしましょう。

ミス② : 条件に当てはまる処理文はすべて実行されるという誤解

どういうことかを以下の例で説明します。

num = 3
if num > 1:
    print('条件式1')
    #条件式1
    
elif num > 2 :
    print('条件式2')

elif num > 3 :
    print('条件式3')

else:
    print('false')

 

上記のプログラムを実行すると’条件式1’が出力されます。よくある勘違いは以下になります。条件が成り立つ場合はどの処理文でも実行するという誤解です。コンピューターはコードを上から読み込み、if文の中の条件に1度当てはまると他の条件は読み込まず次のコードを読み込みます。(以下の例が間違いです)

num = 3
if num > 1:
    print('条件式1')
    #条件式1
    
elif num > 2 :
    print('条件式2')
    #条件式2

elif num > 3 :
    print('条件式3')
    #条件式3

else:
    print('false')

 

つまり、条件式が簡単に書かれていても実際は以下のような条件式の意味合いになっているということです。

num = 3
if num < 1:
    print('条件式1')
    
elif num < 2 :#条件式 1 <= num < 2
    print('条件式2')

elif num < 3 :#条件式 2 <= num < 3
    print('条件式3')

elif num < 4 :#条件式 3 <= num < 4
    print('条件式4')
    #条件式4

else:#条件式 4 <= num
    print('false')

 

まとめ

いかがでしたか。今回は初心者の方向けにif文の使い方について解説しました。最後にもう1度’if-else’と’else if(elif)’文の基本形について再掲します。

if-else

if 条件式 :
    条件式が成り立つときに実行する処理

else:
    条件式が成り立つときに実行する処理

else if (elif)

if 条件式1 :
    条件式1が成り立つときに実行する処理

elif 条件式2 :
    条件式2が成り立つときに実行する処理

elif 条件式3 :
    条件式3が成り立つときに実行する処理

else:
    条件式すべてが成り立たないときにの時に実行する処理

今回の記事はここまでになります。ここまでご覧いただきまして誠に有り難うございました。