【Python入門】if文の使い方!「もしも〜なら」の条件分岐!

Python Python

Pythonでif文を使って、条件分岐をする方法について書いています。
最初にif文について簡単に解説して、その後にelse文・elif文について解説しています。

ifと一緒に使用するelifやelseについても一緒に解説しました。
載せているコードはPythonのバージョン3.9.12で確認しました。

Pythonのif文って?どう書く?

if文は「もしも〜だったら〜する」というように、特定の条件のときにやりたい処理行うことができます。

if文を書くときには、ifの後に条件を書きます。
条件文の終わりにコロン(‘:’)をつけます。

例えば、下記のように使います。

fruit = 'apple'

if fruit == 'apple':
    print('赤色です')

上記では、fruit変数に’apple’という文字列を入れています。
その後にif文を使っています。

fruit変数の値が’apple’なのかを比較演算子(‘==’)で比べています。
条件に合う場合には、配下のコードブロックが実行されます。
今回は条件に合うので、’赤色です’という文字列がprint関数で出力されます。

下記のようにfruitが条件に合わない場合は、何も出力せずに処理が終わります。

fruit = 'banana'

if fruit == 'apple':
    print('赤色です')

上記のコードのようにPythonのif文の処理の中身はインデント(字下げ)しておく必要があります。

インデントされていない場合は?

if文の配下の処理コードがインデントされていない場合はエラーになります。
実際に下記のコードを動かしてみます。

fruit = 'apple'

if fruit == 'apple':
print('赤色です')

そうすると、このようにエラーが表示されました。

$ python3 if-test.py
  File "/Users/xxx/if-test.py", line 4
    print('赤色です')
    ^
IndentationError: expected an indented block

「インデントされたブロックが必要」というメッセージが表示されました。

インデントがズレている場合は?

if文の配下の処理コードのインデントが、それぞれズレている場合もエラーになります。
実際に下記のコードを動かしてみます。

fruit = 'apple'

if fruit == 'apple':
    print('赤色です')
     print('青色です')
    print('黄色です')

そうすると、このようにエラーが表示されました。

$ python3 /Users/xxx/if-test.py
  File "/Users/xxx/if-test.py", line 5
    print('青色です')
IndentationError: unexpected indent

「予期しないインデント」というメッセージが表示されました。
このように、インデントがなかった場合や処理コードのインデントがズレている場合はエラーになります。

else(そうでない場合)はどう書くのか?

else文を書くと、if文に該当しない場合にelse文の処理を通るようになります。
else文はif文の後、もしくはelif文の後に書きます。

例えば、下記のように使います。

fruit = 'banana'

if fruit == 'apple':
    print("りんごです")
else:
    print("何かの果物です")

else文を書いた後はコロン(:)をつけて、その配下にコードを書きます。
こちらもインデントしておく必要があります。

上記のコードでは、fruit変数にはbananaが入っています。
fruit変数の内容をappleと比較していますが、違うのでelse文のコードブロックを通ります。
結果、今回のコードでは「何かの果物です」が出力されます。

コード配下のインデントがなかったり、ズレていた場合は、if文と同様にこちらもエラーになリます。

elif(違う場合で、もしも〜だったら)はどう書くのか?

elif文はelse ifの略式です。
「もしも〜だったら」の後に「そうではなく〜だったら」といった形で、条件がつけれます。

if文の条件を書いた後に使用します。
例えば、下記のように使います。

fruit = 'banana'

if fruit == 'apple':
    print("りんごです")
elif fruit == 'banana':
    print("バナナです")
else:
    print("何かの果物です")

elif文も条件を書いた後にコロン(:)をつけて、配下に条件にあっている場合のコードブロックを書きます。
こちらも同様にコードブロックはインデントします。

上記のコードだと、fruit変数にbananaが入っています。
最初に、if文でfruit変数がappleか確認します。
appleではないので、次にelif文の条件と合うかを確認します。

今回はelif文の条件に合うので、配下のコードが実行されます。
結果として、上記のコードは「バナナです」が出力されます。

elif文もインデントや、コードのそれぞれがズレているとエラーになります。

if文を使ったサンプルコード

if文を使用したサンプルコードを3つ載せてみました。

else文を省略する

else文は書かずに、if文・elif文だけを使用することも、もちろん可能です。

score = 80

if 90 <= score:
    print("すごい!")
    print(str(score) + "点です")
elif 80 <= score:
    print("よくできました!")
    print(str(score) + "点です")
elif 60 <= score:
    print("がんばりました!")
    print(str(score) + "点です")

上記のコードでは、score変数に80が入っています。
最初にif文で90と比べていますが、条件に合わないので、次の条件にいきます。

次の条件はelif文で書いています、条件を確認すると80点以上なので、ここのコードブロックが実行されます。
なので、結果としては「よくできました!」と「80点です」が出力されます。

else文が無いので、59点以下の場合は該当する条件文がないので、何も出力されずに処理が終わります。

if文を複数回使っている

プログラムの中で、if文は何度でも使うことができます。

fruit = 'apple'

if fruit == 'banana':
    print("バナナです。")
elif fruit == 'apple':
    print("リンゴです。")
else:
    print("何かの果物です。")

if fruit == 'banana':
    print("黄色です。")
elif fruit == 'apple':
    print("赤色です。")
else:
    print("色はわかりません")

上記のコードでは、fruit変数に’apple’が入っています。
最初のif・elif・else文で、’apple’と判定している箇所を通るので「リンゴです。」が出力されます。

その後に、また同じif文を書いています。
こちらでも同じ条件を通ります。
そのため結果は「リンゴです。」と「赤色です。」が出力されます。

同じ条件なので、if文の処理を上のほうにまとめてもよかったのですが、わざと2つ書いてみました。

おみくじを作る

最後におみくじを作ってみました。
出力するのは、大吉・中吉・小吉・吉・末吉・凶の6パターンです。

最初にランダムな数値を取得して、if・elif・elseを使って出力してみました。

import random
result = random.randrange(6)

if result == 0:
    print("大吉です。")
elif result == 1:
    print("中吉です。")
elif result == 2:
    print("小吉です。")
elif result == 3:
    print("吉です。")
elif result == 4:
    print("末吉です。")
elif result == 5:
    print("凶です。")
else:
    print("?")

最初にrandomモジュールを使用して、0から5のランダムな数値を取得して、result変数に入れています。
その後にif・elif・else文で値を判定しています。

0だったら大吉、1だったら中吉…みたいな形です。
elseも用意していますが、0から5の数値しか取れないので、else配下のコードは実行されません。

おみくじが完成しました。
ランダムな値を取得するので、毎回結果が変わります。

コメント

タイトルとURLをコピーしました