この記事ではif文でelifとelseを
どうやって使い分けたらよいか解説します。
elifとelseを使い分ける方法を理解するために
まず簡単ではありますが条件分岐について解説します。
目次
【Python入門】条件分岐とは?if文を理解する大前提
条件分岐とは「もしAがBならばCを実行して
そうでないならDを実行する」という構造をしているものをいいます。
AがBという条件に合致しているか、
それとも合致していないかで処理を変えるものを
条件分岐といいます。
たとえば、『ブサメンの男性が起業家なら
デートに行くけど、起業家でないならデートに行かない』
という文章。
この文章も条件分岐の一種です。
【Python入門】elseやelifを使わない単純なif文について
まずif文について理解するために
elseやelifを使わない例題をやっていきましょう。
#例題1 a = 9 b = 'イケメン俳優' if a < 10: b = '美人OL' print(b)
例題1を実行すると
『美人OL』と表示されます。
例題1ではまず
a = 9 b = 'イケメン俳優'
として変数aに9を代入し
変数bにイケメン俳優という文字列を代入しています。
「変数の代入についてもっと知りたいんだけど・・・」
という方はこちらの記事をご覧ください。
それから文字列などの型について詳しく知りたい方は
こちらの記事をご覧ください。
話を元に戻しますね。
a = 9 b = 'イケメン俳優'
で、9を変数aに代入し
イケメン俳優という文字列を変数bに代入しました。
それから
if a < 10: b = '美人OL' print(b)
で、ifが登場しますね。
if a < 10:
で、もし変数aが10より小さい値ならという意味です。
もしaが10より小さいと
b = '美人OL'
美人OLという文字列を変数bに代入します。
つまり、変数bは『イケメン俳優』から『美人OL』に
入れ替わるということです。
実際に変数aは9で10より小さいので
変数bは美人OLになっています。
なので実行すると
『美人OL』と表示されます。
こんな感じでif文の直後に条件を書いて
それが満たされていれば、その後の処理が
実行されます。
では、例題1’はどうなるでしょう?
変数aに11という値を代入しています。
#例題1' a = 11 b = 'イケメン俳優' if a < 10: b = '美人OL' print(b)
実行しても何も表示されません。
a = 11は
if a < 10:
という条件を満たしていないからです。
elseやelifがないと
条件を満たしない場合に
何の処理もされなくなってしまうんですね。
それからもう1度例題1をご覧ください。
#例題1 a = 9 b = 'イケメン俳優' if a < 10: b = '美人OL' print(b)
例題1で
if a < 10: b = '美人OL'
の部分、『b =』の部分ですが
左に空白が開いていますね。
これをインデントといいます。
if文の後、インデントという空白を半角4つ分入れることが
推奨されています。
ここまではif文のみでelseなどを入れない形でした。
elseが入ることで
条件を満たさなかったときの処理を加えることができます。
実際にelseを使っていきましょう。
【Python入門】if~elseによる条件分岐
#例題2 a = 100 b = '司法試験合格' if a < 90: b = '司法試験不合格' print(b) else: b = 'あこがれの弁護士' print(b)
例題2では
変数aに100を代入しています。
そしてもし変数aが90より小さい値なら
『司法試験不合格』と表示させ
そうでない(変数aが90以上)なら
『あこがれの弁護士』と表示させます。
変数aには100が入っているので
実行すると『あこがれの弁護士』と表示されます。
こんな感じでelseを取りいれることで
条件を満たさなかった場合の処理を入れることができます。
例題2では変数aが90より小さくない場合なので
elseが活用されましたね。
では例題3はどういう結果になるでしょう?
#例題3(例題2との違いはaに入る値だけ) a = 80 b = '司法試験合格' if a < 90: b = '司法試験不合格' print(b) else: b = 'あこがれの弁護士' print(b)
例題3では最初に入る変数aの値が80に変更されているだけです。
で、
if a < 90: b = '司法試験不合格' print(b)
ということで、変数aに入っている値は80であり
90より小さいので、elseに行きません。
if a < 90: b = '司法試験不合格' print(b)
この部分が実行され、
『司法試験不合格』と表示されます。
理解していただけましたでしょうか?
次にelseよりも
もっと複雑な処理ができるelifを使った例題を
一緒にやっていきましょう。
【Python入門】if~elifによる条件分岐
elifの数を使うと分岐の数を増やすことができます。
elseでは1つしか分岐を増やせませんでしたね。
でも、もっと分岐を増やして複雑な処理にしたい場合に
elifを使います。
例題4をやってみましょう。
#例題4 a = 71 b = '司法試験合格' if a > 90: b = '裁判官になれる' elif a > 80: b = '一流弁護士' elif a > 70: b = 'なんちゃって弁護士' print(b)
例題4では変数aに71を代入しています。
で、aが90より大きいなら『裁判官になれる』
aが80より大きいなら『一流弁護士』
aが70より大きいなら『なんちゃって弁護士』
と表示されます。
Pythonでは上から下に順番に条件が判定されます。
なので、80 90
で大丈夫です。
Python的には
if a > 90: b = '裁判官になれる'
で、aは71だから違うと判断され、
次に
elif a > 80: b = '一流弁護士'
に移動するけど、aは71だから違うと判断され
次に
elif a > 70: b = 'なんちゃって弁護士'
に移動し、aが71なので条件に合致するため、
変数bに『なんちゃって弁護士』が代入され
その下のprint(b)で『なんちゃって弁護士』
と表示されます。
実行すると、
と、『なんちゃって弁護士』と表示されていますね。
【Python入門】if、else、elif全部混ぜてみる
ここまではif文に対してelseだけelifだけで
やってきました。
ここではif文にelseとelifを混ぜて
やっていきましょう。
例題5をご覧ください。
#例題5 a = 60 b = '司法試験合格' if a > 90: b = '裁判官になれる' elif a > 80: b = '一流弁護士' elif a > 70: b = 'なんちゃって弁護士' else: b = '残念でした' print(b)
変数aに60を代入していますね。
なので、プログラムはどんどん下に降りてきて
else: b = '残念でした'
にたどりつきます。
結果、実行すると
『残念でした』と表現されます。
こんな感じでif,elif,elseを全部使うと
上から下に順番に条件が判定されていきます。
そして条件が満たされているところの処理が実行されます。
以上で解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。