【Python基礎編】もし好きな動物を連れて行けたらあなたの選択は?【if文で条件分岐をマスター】

みなさん、こんにちはケンケンです。

 

Pythonを使ってプログラミングの基本事項をご紹介しています。

 

前回は、関数やデータ型などについてお伝えしました。

前回記事

みなさん、こんにちはケンケンです。   Python(パイソン)の紹介をしています。 前回は、Pythonとはどういう言語かや簡単なコードを書いて実行するところまでご紹介しました。 [sitecard su[…]

今回は、If文を使った条件分岐の基礎をお伝えします。

プログラミングを学習するうえで重要な論点になるので、しっかり覚えてしまいましょう。

それでは、以下ご覧ください。

 

簡単なゲームを作りながら基本構文を学ぼう

基本事項の勉強を進めていこうと思いますが、単純に暗記だけしていくのはつまらないですね。

そこで、簡単ではありますが、ゲームを作りながら進めていこうと思います。

 

ゲーム内では動物達が登場し、その動物をプレイヤーの選択次第で仲間にできるゲームを作りたいと思います。

登場する動物は「ぺんぎん、犬、猫」にします。

 

どの動物を連れていく?~If文を使った条件分岐の基礎~

それでは、If文を使った条件分岐の基礎から見ていきます。

If文を簡単に説明すると「もし、○○したら××してください。」というように、条件を出して行動を分岐させることです。

以下詳しく解説します。

 

まず、If文の書式は以下のようになります。

▶If文の構文

if 条件式:

【Tab】条件が成り立つとき(True)に実行

 

条件式の後には「:(コロン)」を付けてください。

 

【Tab】はインデントを表しています。

インデントとは、字下げのことです。簡単に言うと、コードを見やすくするために段落を分けるような感じです。

Pythonではこのインデントが自動で行われます。

 

If文を書いてみよう

それでは、実際にコードを書いて動くものを作ってみましょう。

まずは、IDLEを起動し、インタラクティブシェルを開きNewFileを作成します。

 

ファイルの名前は何でも構いませんが、今回は「ポケットアニマル」にしました。ポケットモ〇スターではありませんよ。

そのファイルに以下のようにコードを書いてください。

 

▶ポケットアニマル.py

question = input('動物は好きですか?>')#①
if(question == 'y'):#②
    print('ペンギンと犬と猫を仲間にしよう!')#③

コードの解説

①input関数はプログラム実行下で取得した文字列を返してくれます。

つまり、動物は好きですか?という問いかけに対し、なんらかの文字列を打ち込むことによって、

その文字列を取得し、変数questionに渡しているのです。

前回の復習になりますので、知識があいまいな方はこちらの記事をどうぞ。

 

②ここからが、If文になります。

「(question == ‘y’)」の部分が条件式になります。

簡単に言うと、変数questionに格納されている文字列が「y」だったら次の処理をする、という意味です。

yは「yes」を想定しています。

「==」の部分は左辺と右辺が等しいときにはTrue、そうでなければFalseが返ってきます。

この条件式を作るときに必要な記号を比較演算子といいます。

 

条件が合致しTrueが返ってきた場合に次のコードが実行されます。

「=」とは違いますので明確に区別がつくように理解しておきましょう。

 

③変数questionに「y」が入っている場合、つまり条件式がTrueの場合にprint関数が実行されます。

print関数についても前回説明していますので割愛します。

 

それでは、コードを実行してみましょう。

 

条件式に合致しない場合の処理を書こう

先ほどの例だと、質問に対し答えが「y(True)」になった時の処理しかありませんでした。

それでは何かと不都合が出てきてしまいますので、答えがFalseの時の処理も追加しておきましょう。

▶If~else

if 条件式:

      条件が成り立つとき(True)に実行

else:

      条件不成立のとき(False)に実行

条件が不成立のとき、つまりFalseのときの処理を追加したい場合は、elseを使います。

「もし、○○したら××してください。そうでなかったら△△してください。」ということです。

早速コードを書いてみましょう。

 

▶ポケットアニマル.py

question = input('動物は好きですか?>')
if(question == 'y'):
    print('ペンギンと犬と猫を仲間にしよう!')
else:#④
    print('残念です。一人で旅をしてください。。。')

④条件式がFalseの場合にelse以下の処理が実行されます。

ここで注意点ですが、コード上のIfとelseの出だしは合わせてください。

例えば、elseがインデントされているとエラーになってしまうので気を付けてください。

それでは、コードを実行してみましょう。

 

動物が好きな場合に次の条件を増やしてみよう

動物が好きだと答えた場合は、動物を仲間にできました。

しかし、動物好きの中にもいろいろな人がいそうですね。

好みに合わせて仲間にできる動物の種類が変化するように条件式を加えて表現してみましょう。

一つ目の質問がTrueになった場合に、次の質問へ進むようにコードを変更してみます。

先にコードをお見せします。

 

▶ポケットアニマル.py

question = input('動物は好きですか?>')
if(question == 'y'):
    question2 = input('哺乳類は好きですか?')#⑤
    if(question2 == 'y'):#⑥
        print('犬と猫を仲間にしよう!')
    else:#⑥
        print('ペンギンを仲間にしよう!')
else:
    print('残念です。一人で旅をしてください。。。')

 

⑤一つ目の質問がTrueだった場合に進み、さらに条件分岐するための質問を投げかけています。

質問に対する答えを変数question2に格納しています。

 

⑥question2がTrueの場合とそうでない場合の条件分岐をしています。

Ifとelseの書き出しに注意してください。

 

さあこれで実行するとどうなるでしょうか。

 

もうひとつ条件を加えてみよう

試しに、もうひとつ条件分岐させてみましょう。

コードを以下に記載しておくので、実際にどのようなアクションになるか試して確認しておいてください。

 

▶ポケットアニマル.py

question = input('動物は好きですか?>')
if(question == 'y'):
    question2 = input('哺乳類は好きですか?')
    if(question2 == 'y'):
        question3 = input('人懐こい動物が好きですか?')
        if(question3 == 'y'):
            print('犬を仲間にしよう!')
        else:
            print('猫を仲間にしよう!')
    else:
        print('ペンギンを仲間にしよう!')
else:
    print('残念です。一人で旅をしてください。。。')

入れ子が複雑になったときにelifで分岐させる方法

今までの方法だと条件が多くなればなるほどインデントが深くなってコードが見にくくなります。

そこで、elifを使うことによって、インデントすることなくすっきりコードを書くことができます。

 

▶If~elif~else

if 条件式1:

      条件式1が成り立つとき(True)に実行

elif 条件式2:

      条件式2が成り立つとき(True)に実行

else:

   すべての条件式が不成立のとき(False)に実行

このようにif以下にelifの条件式を追加することでインデントすることなくコードを書くことができます。

ひとつ注意すべき点は、elifの場合は、最初にすべての条件を満たすものを用意し、

条件が満たされない場合に条件を減らしていくイメージにすると良いでしょう。

今回の場合は、3つある質問すべてをコードの冒頭で行い、その結果をまとめてif以下の条件に当てはめて評価します。

コードは以下の通りです。

 

▶ポケットアニマル.py

question = input('動物は好きですか?>')
question2 = input('哺乳類が好きですか?')
question3 = input('人懐こい動物が好きですか?')
if ((question == 'y') and (question2 == 'y') and (question3 == 'y')):
    print('犬を仲間にしよう!')
elif ((question == 'y') and (question2 == 'y')):
    print('猫を仲間にしよう!')
elif ((question == 'y')):
    print('ペンギンを仲間にしよう!')
else:
    print('残念です。一人で旅をしてください。。。')

if条件下をandでつなげていますが、これは、条件式のすべてが成立する場合に処理を実行するという意味です。

コードをじっくり読んで実行結果を確認しておきましょう。

elifはお好みで使ってください。

 

まとめ

今回は、if文を使った条件分岐を勉強しました。

プログラミングの基礎的な部分ですが、コードを理解して書けるようになると楽しいと思います。

いろいろと分岐の方法を試して楽しんで勉強を続けてください。

 

次回は、これもプログラミングの醍醐味ともいえる、繰り返し文を紹介するのでお楽しみに。

それでは、また次回お会いしましょう。

次回記事

みなさん、こんにちはケンケンです。   Pythonでプログラミングの基礎をご紹介しています。 前回は、if文を使った条件分岐についてお伝えしました。 [sitecard subtitle=前回記事 url[…]

 

Python基礎編記事一覧

プログラミング初心者がPythonを学んだ方が良い理由【インストールから簡単なプログラムまで】

【Python基礎編】データをうまく出力するには型にはめることが重要【データの型・演算子・関数を知る】

【Python基礎編】もし好きな動物を連れて行けたらあなたの選択は?【if文で条件分岐をマスター】

【Python基礎編】ペンギンを仲間にするためには三顧の礼では失礼なのか【for文で繰り返し処理】

【Python基礎編】人気者のペンギンでも即OKをもらえる方法【for文の続き・breakで処理を中断】