Pythonプログラミング初心者に向けて、if文による条件分岐について解説します。
前回、bool型や比較演算子について勉強してきました!
bool型と比較演算子の考え方が重要だって言ってたけど今回は何をしていくんですか?
今回は前回解説したbool型(真偽値型)と比較演算子を使って、「if文を使った条件分岐」というものを教えていきますね!
一気にプログラミングっぽくなっていくから、きっと面白いと思えるはずですよ!
前回は「bool型(真偽値型)」という型と「比較演算子」について学びました。
今回はこれらを用いて「if文を用いた条件分岐」について解説していきます。
条件分岐とは
「条件分岐」とは「条件」を満たした場合に処理が「分岐」していくプログラムのことを言います。
プログラムの中では「if」を用います。
「if」は日本語だと「もし○○ならば..」と訳されるように、if文の条件が「もし満たされれば、続く処理が実行される」といった流れです。
続いて「if文」の使い方を説明した上で条件分岐の動作を確認していきます。
if文の基本
if文は以下のように使われます。
if 条件式:
条件を満たしたときの処理内容
・・・・
「if」の後に「条件式」を書き、条件が満たされた時には続く処理が実行されます。
「条件式」には前回学習した「比較演算子」を用いてbool型の「True」か「False」となるような条件を書きます。
この「条件式」が「True」となれば続く処理が実行されます。
「条件式」の後ろには「: (コロン)」を書き、改行します。
他のプログラミング言語の経験がある人や初心者はよく「: (コロン)」を忘れるので注意してください!
コロン・改行の後はキーボードの[TAB]ボタン1回分(または[Space]ボタン4回分)の字下げを行います。
この字下げのことをインデントと言います。
Jupyter Notebookなどの実行環境だと、コロン・改行とすると自動でインデントされますが、インデントが必要だということは覚えておいてください。
条件式を満たしたときに行いたい処理内容はインデントしていれば何行でも書くことができます。
if文の使用例
使用例1
文字だけだとイメージをつかみにくいので実際に簡単なif文を書いてみましょう。
# 変数animalに「seal」を代入
animal = "seal"
#変数animalが"seal"と同じならば..
if animal == "seal":
#条件を満たしているので以下を実行
print("アザラシは可愛い!")
#実行結果 アザラシは可愛い!
「if(条件式):」における条件式は「animal=="seal"」となります。
変数animalには"seal"を代入しているので、条件式は「True」となります。
このため、if文の条件が満たされるので、次の行以降のインデントされた部分が実行されます。
そのため、出力結果は「アザラシは可愛い!」となります。
同じコードで、変数animalに「"flog"(かえる)」を代入して実行してみます。
# 変数animalに「flog」を代入
animal = "flog"
#変数animalが"seal"と同じか比較するが..
if animal == "seal":
#条件を満たしていないので以下は実行されない
print("アザラシは可愛い!")
#実行結果
if文の条件式「animal=="seal"」が「False」となります。
そのため、次の行以降の「条件を満たしたときの処理内容」は実行されません。
よって、実行結果は何も表示されません。
if文のイメージがつかめてきました!
もう少し別の例を見ていきましょうか!
使用例2
下のプログラムでは変数の数値によって、if文で実行するかしないかを制御しています。
# 変数numに5を代入
num = 5
#変数numが0より大きいか
if num > 0:
#条件を満たしているので以下は実行
print("変数numは正の値です。")
#インデントしていないので、if文に関係なく実行
print("***処理を終了します。***")
#実行結果
# 変数numは正の値です。
# ***処理を終了します。***
「if(条件式):」の条件式「num>0」において、num=5より条件式は「True」となります。
そのため、インデントされた「条件を満たしたときの処理内容」部分は実行されるので、「変数numは正の値です。」が出力されます。
続く、「print("***処理を終了します。***")」はインデントされていないので、if文の条件に関わらず実行されます。
したがって、実行結果は「変数numは正の値です。」「***処理を終了します。***」が出力されます。
プログラムの意味がつかめてきました!
if文が出てきてプログラム全体を読み解くのが面白くなってきました!
難しい内容だけどプログラミングの面白さが伝わって良かったです!
次回も、if文についての解説が続くから今回の内容もしっかり理解してほしいです!
それじゃあ、確認問題を解いてもっと理解を深めていきましょう!
それでは、これまでの内容を以下の問題でおさらいしてみましょう!
確認問題
①変数numに整数値-10を代入して変数を作成しましょう。
➁numの値が負だったら「numの値は負の値です」と出力するif文を書きましょう。
※ヒント 変数numが負となる条件式は「num<0」です。
③上記の問題➁の条件に関わらず、最後に「numの判定は終了しました。」と出力しましょう。
確認問題 解答
以下が解答例です。わからなかった場合は実際に自分で書いて理解を深めましょう。
#①変数numに整数値-10を代入して変数を作成
num = -10
#➁numの値が負だったら「numの値は負の値です」
# と出力するif文を書きましょう。
if num < 0:
print("numの値は負の値です")
#③問題➁の条件に関わらず、「numの判定は終了しました。」と出力
# インデントしていないのでif文に関わらず出力
print("numの判定は終了しました。")
また、変数numの値を変更して動作を確認してみましょう!
まとめ
今日はif文による条件分岐を説明しました。
これまで書いたプログラムはすべて上から順番に実行されていくものしか扱っていなかったので、プログラム初心者の方にとっては書いたプログラムで実行されない部分があるのは違和感があるかと思います。
ただし、複雑なプログラムは条件分岐の連続だと思います。
今後も条件分岐について詳しく解説していきますので、条件分岐の書き方に慣れ親しんでいただければと思います。
このサイトの記事一覧へは以下へアクセス!
コメント