【初学者向プログラミング】 Pythonを使った開発 -その2-

Python編

みなさんこんにちには、こんばんは

文系出身やIT未経験で、プログラミングをしてみたいけど何からしたらいいか分からない人向けの、Pythonでコーディングをしてみようの回その2になります。

全3回で、コマンドで対話する超簡単な血液型診断を作ってみようと思います。

第一回はこちら

前回は血液型を入力してもらって、それを変数に埋め込むところまでしました。今回は第二回として、その条件を元に処理を分岐するご説明します。

条件分岐とは

プログラムには、条件分岐と言われる処理があります。

その名の通り、条件によって処理を分岐するものです。もしAだったら〇〇、Bだったら◇◇といったようなに処理を分けられます。

処理の分け方は大きく二つあり、if文と呼ばれるものと、match文と言われるものです。それぞれの特徴はこの後使い方と合わせてご説明します。

条件分岐してみよう

if文を使って分岐する

if文は、以下のような書き方で分岐できます。

if str == "A":
    print("あなたの血液型はA型です")

条件に当てはまった場合だけ、その中のブロックに記載された処理が動きます。(今回でいうとprint文のところ)。ここでPythonでコーディングするときのポイントを二つ。

比較するときは=ではなく、==で比較する。

こちらはPythonに限らずなパターンが多いですが、A と Bが等しいかを比較したいとき、=を二つ繋げた==で比較します。

プログラム上では = は変数に代入する(変数に値をいれる)ことを意味します。なので、str = “A”とすると、strにAを入れることになってしまいます。今回はstrがAと等しいかを比較したいため、==で比較します。

処理のブロックはタブで分ける

Pythonは処理をタブで管理します。

タブの位置が合うと、その中の処理とはみなされません。逆に一つずれるとその中の処理としてみなされます。if文の中の処理は、タブを使ってまとめます。

if文を使ってさらに分岐する

今の状態だと、「Aだったとき」の処理しか実施されません。

血液型は4つあるので、Aだったとき、Bだったとき、Oだったとき、ABだったときの四つを分けたいと思います。そこで、複数件条件を分けるときは以下のような書き方になります。

if str == "A":
    print("あなたの血液型はA型です")
elif str == "B":
    print("あなたの血液型はB型です")
elif str == "O":
    print("あなたの血液型はO型です")
elif str == "AB":
    print("あなたの血液型はAB型です")

elif でさらに条件を分岐できます。elifは、もし上の条件とは当てはまらなかったけど、ここに記載したものが正しかったら(else if)の意味になります。プログラムは上から順番に動くので、もしAだったら最初に引っかかり、AではないけどBだったら二番目に引っかかり、・・・という風に処理が動きます。

また、最後に全部に当てはまらなかったら、という処理も付け加えることができます。その場合は、else になります。

if str == "A":
    print("あなたの血液型はA型です")
elif str == "B":
    print("あなたの血液型はB型です")
elif str == "O":
    print("あなたの血液型はO型です")
elif str == "AB":
    print("あなたの血液型はAB型です")
else :
    print("どれにも当てはまりません")

さて、この処理を実行して見ましょう。

今回、AとOしかパターンを試しませんでしたが、BやABも同じような結果になるかと思います。

match文で分岐する

Pythonではmatchという分岐方法もあります。Python3.10から実装されたもののため、古いPythonを利用されている方は使えません。(他のプログラミング言語だとswitchという処理と同じです。)

match str:
    case "A":
        print("あなたの血液型はA型です")
    case "B":
        print("あなたの血液型はB型です")
    case "O":
        print("あなたの血液型はO型です")
    case "AB":
        print("あなたの血液型はAB型です")
    case _:
        print("どれにも当てはまりません")

これは、strという文字列がそれぞれにマッチしているかを判定しています。strが”A”だったら最初に引っかかります。最後の _ はif文で言うところのelseにあたり、どれも当てはまらなかったらのようなことになります。

今回のパターンだと、if文でつらつら書くより、こちらで書いた方がすっきりしますね。それぞれ特徴や書きやすや、見やすさに応じて書き換えます。

診断結果を出力してみよう

さて、ここまできたらあとは出力する文章を変えるだけです。

print("あなたの血液型は?")
str = input()

match str:
    case "A":
        print("あなたは几帳面なタイプですね")
    case "B":
        print("あなたの好奇心旺盛なタイプですね")
    case "O":
        print("あなたのおおらかなタイプですね")
    case "AB":
        print("あなたは二面性があるタイプですね")
    case _:
        print("正しく血液型を入力してください")

これは私のなんとなくのイメージで書いています。笑

これで、血液型を入力したらあなたのタイプを出力してくれるようになりました。

最後に

これで、なんとなくプログラミングの仕方はイメージついたのではないでしょうか?

今のままでもなんとなくそれっぽくはなりましたが、間違えたものを入力するとそのまま処理が終わってしまいます。次回は、正しいものが入力されるまでずっと聞き続ける、ループ処理というものを入れたいと思います。

また、もっとこんなことできたら面白そうなんかのイメージが膨らむととてもGoodだと思います。今はまだ難しくても、慣れていくにつれてより高度なものも作れるようになると思いますので、少しずつなんとなーく理解を深めていきましょう!

ここまで見ていただきありがとうございました。第三回は以下になります!

コメント

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