python学習③|条件分岐 if文について

python学習③|条件分岐 if文について

pythonの条件分岐は「if文」で作ります。多岐に渡り使用する命令文なので、基礎をしっかりマスターしておきましょう。

1.条件分岐とは?

皆さんが普段行っている事をチョット思い出してみてください。例えば車の運転をしていて交差点に差し掛かった時に、

信号が青だと「このまま進もう」信号が黄色だと「減速して注意して進もう」信号が赤だと「止ろう」という行動をしていると思います。

これは、信号機の色を認識して判断してその後の行動を決定しているからだと思います。

この一連の行動をプログラムでは条件分岐と呼んでいます。

2.人間思考の条件分岐

この一連の行動を箇条書きにすると下記のようになります。

1.信号機が青色だ!(1番目の分岐条件)

このまま進もう!

2.信号機が黄色だ!(2番目の分岐条件)

減速して注意して進もう!

3.信号機が赤色だ!(3番目の分岐条件)

止まろう!

 

上記の様に「人間思考」では、”直接”色を判断し、行動を選択していますね。”直接”という表現を使ったのは「プログラミング思考」だと”直接”ではないからです。

3.プログラミング思考の条件分岐

人間思考の条件分岐をプログラミング思考で箇条書きにすると、ちょっと変わってきます。箇条書きにしてみます。

1.信号機が青色だったら(1番目の分岐条件)

このまま進もう!

2.信号機が青色じゃ無く黄色だったら(2番目の分岐条件)

減速して注意して進もう!

3.信号機が青色でも黄色でもなかったら(3番目の分岐条件)

止まろう!

「人間思考の条件分岐」だと

1.「青色は進め」

2.「黄色は減速して注意して進め」

3.「赤はとまれ」

上記の様に色と行動が直結しています。1.2.3.ともに色そのもので行動が選択されています。

信号機を見て判断する色が「青色」「黄色」「赤色」と3色で判断しています。

「プログラミング思考の条件分岐」だと

1.「信号機が青色だったら進め青色じゃ無かったら次の条件」

2.「信号機が黄色だったら減速して注意して進め黄色じゃなかったら次の条件」

3.「青色でも黄色でもなかったら止まれ」

信号機を見て判断している色は「青色」「黄色」「それ以外」って感じに色は2色で判断してますね。

上記の様に1.2.の条件分岐点で2択を繰り返して、全ての条件に合わなかった場合3.の「止まれ」を選択します。この様に条件分岐点で2択をする場合に表現されるのが「bool型」と呼ばれるものです。(読み方ブール型[boolean型ブーリアン型]と呼ばれることもあります。同じものだと思っていいです。

bool型は「真(true)」と「偽(false)」で構成されています。条件を「信号機が青色だったら」と指定した場合

信号機が「青色だったら」⇒「真(true)」信号機が「青色以外だったら」⇒「偽(false)」という判断をします。

この2択を繰り返し希望の条件を満たすように誘導していきます。

4.プログラミングコードを書いてみよう

一連の行動を[if文]を意識したプログラミング的に表現すると下記のようになります。

if文の構成には[if],[elif],[else]が必要です。1.if信号機が青色だったら「このまま進もう!」青色じゃなかったら2.elifの条件分岐に移動。2.elif信号機が黄色だったら「減速して注意して進もう!」黄色じゃなかったら3.elseに移動。信号機が青色でも黄色でもないので「止まろう!」 1.ifで1番目の条件 2.elifで2番目の条件 3.elseで1.2.どちらの条件にも合わなかった場合と記述していきます。

1.if  信号機が青色だったら(1番目の分岐条件))

    このまま進もう!

2.elif 信号機が青色で無く黄色だったら(2番目の分岐条件)

    減速して注意して進もう!

3.else:  信号機が青色でも黄色でもなかったら(3番目の分岐条件)

    止まろう!

上記の「プログラミング思考を踏まえ」pythonの言語でプログラミングしてみましょう。pythonでは条件分岐に[if][elif][else]を使用します。

以下がpythonプログラミングコードです。内容をコピーして保存して下さい。保存時に”.py”拡張子を付けるのを忘れずに。



shingou = input("信号機の色は?")  #変数[shingou]に[ユーザー]からの入力された値を代入します。
if shingou == "青色":             #変数[shingou]の値が"青色"に対し(真[true])か(偽[false])か判別します。
    print("進め")                 #変数[shingou]の値が"青色"の場合"進め"を表示「3行目が(真[true])の場合」
elif shingou == "黄色":           #変数[shingou]の値が"青色"以外の場合3行目から5行目に移動してきます。「3行目が(偽[false])の場合」
    print("減速して進め")         #変数[shingou]の値が"黄色"の場合"減速して注意して進め"を表示「5行目が(真[true])」の場合
else:                           #h変数[shingou]の値が"黄色"以外の場合5行目から7行目に移動してきます。「5行目が(偽[false])の場合」
    print("止まれ")              #変数[shingou]の値が"青色"でも"黄色"でもない場合"止まれを"表示

#以降はプログラムに影響出さないのでそのままコピーしても大丈夫です。

上記のコードの中に”=”と”==”2種類の”イコール”があると思いますがこれは単に間違いではなく”=”が変数の値の代入に

割り当てられているので「比較演算子」として”=”が使用できない為「比較演算子」の”イコール”は”==”とルールで決められています。

5.比較演算子について

比較演算子は、if文を書くときに条件を指定しますがその条件がどの様なものなのか定義づけする際に使用する記号です。

主に下記の様なものを使用します。

比較演算子一覧表

記号 名称 記述方法 記述例 説明
== 等記号 A == B 10 == 10 AとBが同じ値なら(真[true])
!= 不等記号 A != B 10 == 11 AとBが違う値なら(真[true])
> 大なり A > B 10 > 9 AがBより大きい値なら(真[true])
< 小なり A < B 10 < 11 AがBより小さい値なら(真[true])
>= 以上 A >= B 10 >= 9 AがBに比べて同じか大きい値なら(真[true])
<= 以下 A<= B 10 <= 11 AがBに比べて同じか小さい値なら(真[true])
今回の記事は以上です。条件分岐についてはこれからも随時出てくると思いますので、今回の記事の内容をよく覚えていてくださいね。