Part10:条件分岐

真姫「データ構造はだいたい分かってきたから・・・今回からはアルゴリズムを表現するための構文にいくわね。まずは条件によって処理を場合分けする条件分岐」
にこ「おっ、いよいよプログラムらしくなってくるのね」
真姫「そんなに解説することもないんだけど。例を見るのが早いわ」

真姫「引数の値に応じて出力を切り替えてるの。学年を入力すると対応するメンバー名が表示されるわ」
絵里「if、もし1だったらまきりんぱな・・・elifはelse ifかしら」
真姫「そう。最初のifに当てはまらなかった場合に、次のelifが評価されるの」
絵里「2、3と順番に判定していって・・・elseは1でも2でも3でもなかった場合ね?」
真姫「なんとなく読めるわよね。英語みたいなものだし」
にこ「この==は何?」
真姫「それは比較演算子といって、それの左辺と右辺を比較して成り立てば真(True)、成り立たなければ偽(False)を返すの。ブール代数はにこちゃんも分かるでしょ」
にこ「そのあたりはばっちりにこ♪」
真姫「==は左辺と右辺が等しければ真になる比較演算子よ。=だと代入演算子と混ざるから==になってる、というのが通説」
絵里「慣れないとかえって間違えそうな気もするわね・・・」
真姫「ifやelifは、条件式が真になったときにその中のコードブロックを実行するの」
にこ「1を入力したら、sys.argv[1] == '1'が真になるからprint('まきりんぱな')が実行されるわけね」
真姫「そういうこと。比較演算子もいくつか挙げておくわね」

演算子 意味
== 等しい
< より小さい
> より大きい
<= 以下
>= 以上
!= 等しくない

にこ「なんとなく数学記号ね」

真姫「じゃあ、ちょっと応用」

にこ「何のランクよ何のっ!」
真姫「例えば絵里ならAランク。最初のif文で、hとbが両方条件を満たしているから」
絵里「andを使うとそうなるってこと?」
真姫「そう。andなら両方を満たした場合、orならどちらかを満たした場合」
絵里「論理演算ね。結局は数学なのね」
真姫「ま、コンピュータって計算機だし」

真姫「最後に重要なことを説明するわ」

真姫「これに1以外を渡すと、結果は?はい、にこちゃん」
にこ「何も表示されないはずにこ」
真姫「正解。それじゃ・・・」

真姫「これだったら?はい、絵里」
絵里「ええと・・・見た感じは「ぱな」になりそうだけど」
真姫「正解。この通り、Pythonはインデントでコードブロックを識別してるの」
絵里「単に見た目だけじゃないのね」
真姫「おかげでコードはきれいになるわ。ちゃんとインデントしないと動かないもの」

にこ「次回はにこにーがもう一つの重要な制御構造、ループの説明をするにこ☆」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です