Python|Pythonで条件分岐(if/elif/else)を使ってみよう!

こんにちは、うしまる(@usitubo)です。

この記事では、Pythonの条件分岐(if)について解説していきます

条件分岐とは?

プログラミングは、基本的に上から下に向かって順番に実行されていきます。その結果、プログラムは毎回同じことを寸分違わず実施してくれるのですが、それだけだと決まりきったことしかできなくなってしまいます。

人がなにかしようとしたとき、常に同じ状況とは限りません。

朝起きて、さぁおでかけするぞってなったとき、晴れていればいつもの持ち物を持ってでかければ良いですが、もし空に怪しい雲が立ち込めていたら?

傘を持っていこうかな?と思いません?

同じようにプログラムもより人間に近い処理ができるように、普段は傘は持っていかないけれど、雨が振りそうだったら持っていこうみたいな処理を作れたら素敵ですよね。

それが条件分岐処理というものになります。

では、実際にPython上で条件分岐を試してみましょう!

 

Pythonにおける条件分岐処理のポイント

Python条件分岐処理のポイント
 複合文の仲間
 条件で処理を変えたいときに使う
 条件は真偽で判定される

 

if文は複合文の仲間

Pythonの条件分岐で使用するのは以下の3種類です。

条件分岐処理で使うもの
 if
 elif
 else

条件を設定することができるのは”if“と”elif“です。”else“は”if“や”elif“の条件に合わなかった場合の処理を設定したいときに使用します。

次の章で具体的に解説していきますが、この条件処理の中に、さらに処理を記載していくことが可能です。このようにさらに処理を記載していくことができる文をPythonでは、複合文(compound statement)と呼ばれています。

 

条件で処理を変えたいときに使う

条件分岐はその名の通り、なにか条件の違いで処理を変化させたいときに使用します。

例えば、車でAT車と呼ばれる自動で変速してくれる車があったとします。車は最初加速するときはギアが一番大きいものになりますが、加速するに連れて小さいものにシフトしていきます。

だいたいの車は、通常加速時は、時速何キロになっていたらギアをシフトするみたいな処理になっていて、うしまるの乗っているCX-3はよく64km/hを超えるとギアが変わります。

こういったときは64km/h未満のときは、ギアはそのまま。64km/hになったらギアを変更するといった具合に外部要因で条件が変わってきたら処理を変更したいときにこの条件分岐処理を使用します。

 

条件は真偽で判定される

条件分岐処理では、設定した条件を真偽で判定します。真偽というと難しい表現になってしまいますが要するに○か✕かという話ですね。

真(○)は、条件を満たしているとき

偽(✕)は、条件を満たしていないとき

真偽という言葉はプログラムをやっているとPythonに限らずお目にかかる内容なので詳しく知っておきたいかたはこちらの記事も参考にしてみてください。

Python|Pythonで真偽値型(bool)をつかってみよう!

 

Pythonで条件分岐を使ってみる

if文で条件分岐をしてみよう

ではさっそくVSCodeを使って条件分岐を実装してみましょう。

Pythonでの記載方法をまとめてみましたので確認ください。

if [条件式1] :

[条件式1が”真”のときのコードブロック]

elif [条件式2]:

[条件式2が”真”のときのコードブロック]

elif [条件式3]:

[条件式3が”真”のときのコードブロック]

else:

[すべての条件式が”偽”のときのコードブロック]
[条件式1]~[条件xx]といくつでも条件を設定することができます。もちろんifだけでも問題ありません。2つ以上の条件を設定したいときは”elif”を使って条件を設定しましょう。そして条件をいくつか設定したけれど、その条件以外のときも処理をしたい場合は”else”を使いましょう。

それぞれ条件を満たしたときはその中のコードブロックに記載された処理が実行されます。もちろんその中にさらに”if”文を設定するともできますが、あまりネストが深くなる処理は、実際の開発現場ではあまり推奨されないので気をつけてください。

では、実際に動かしてみましょう!

コードはこちら

#Pythonで条件分岐処理を使ってみよう!
#変数定義
pattern = 0 #パターン 0:何もしない 1:開ける 2:???
door    = 0 #ドアの状態 ?=2, 開=1, 閉=0      

if pattern == 0 :
    print("扉が閉まってる")
    print("でも何もしない")
elif pattern == 1 :
    print("扉が閉まってる")
    print("鍵で開けよう")
    door = 1
else :
    print("扉が閉まってる")
    print("鍵を開けy・・・あれ?")
    door = 2
    print("鍵は壊れた")

print('ドアの状態を確認')
print(door)

 

では、まずパターン0のifで設定したときの動作をみてみましょう。

赤枠で囲んだ場所が実行結果です。今回はpattern = 0を設定して処理が実行されたので、ifの条件の部分で真となる実行結果となりました。もちろんこのときのコードブロックには、変数doorを変更するような処理は無いため、実行結果としても変数door=0のままでした。

 

次は変数pattern = 1のときの動作をみていきましょう。

次は、変数pattern = 1となりましたのでelifの条件で真となりました。このコードブロックでは変数door = 1に変更する処理を入れていますので0→1に変数が変更され、赤枠の実行結果では変数door = 1となりました。

 

次は変数pattern = 2のときの実行結果をみてみましょう!

変数pattern = 3に合致する条件は、実装上には明記されていません。ただしelseは他の条件式に合致しないものすべてが通るルートとなりますので変数pattern = 0もしくは1以外はすべてこちらのコードブロックを通ります。

このコードブロックで変数door = 2へ変更されましたので赤い枠の実行結果としても、変数door = 2となっていることがわかりますね。

 

まとめ

今回は、分岐条件について解説しました。PythonはSwitch文がありませんが、特有の記載でC言語系のif-else文を多用したものとは違うので両方代用したような使い方が出来ますね。

他にもPythonとVSCodeでコードの書き方について紹介していますので合わせて確認してみてください

Python|Python始め方講座【初心者向け】

これからもPythonの基本的な使い方やその他言語とVSCodeを使った解説記事を紹介していきますので良かったらTwitterをフォローいただけると嬉しいです

それでは、今回はこのへんでノシ

記事が参考になったり、気に入ってもらえたら
ポチッとしてもらえると励みになります!

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Pythonへ にほんブログ村 株ブログ つみたてNISAへ

シェアしてもらえるとうれしいです!

コメントを残す

ABOUT US

福岡でWindowsアプリケーション開発のお仕事してます。 お金に縛られない生活を目指して日々学んだことをOUTPUTしていきます。 主なテーマ ◆仕事経験から:AWS/Azure/C++/C#/Python/Ruby ◆資産形成に向けて:つみたてNISA/米国株/日本株/仮想通貨/ソーシャルレンディング ◆好きなこと:旅行/温泉/美味しいもの/布団の中 ◆目標:ブログを毎日更新目指します!