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

PythonPython

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

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

PR

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

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

PR

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配下のコードは実行されません。

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

コメント

Ads Blocker Image Powered by Code Help Pro

広告ブロッカーが検出されました。

ブラウザの拡張機能を使用して広告ブロックをしていることが確認できました。 ブラウザの広告ブロッカー機能を無効にしていただくか、codelikes.comをホワイトリストに追加し、更新をクリックしてください。 お手数ですが、よろしくお願いします🙇‍♂️
タイトルとURLをコピーしました