Python入門② if文とelif文,else文
Pythonのif文,elif文,else文(条件分岐)でできること
if文の簡単な例とよくあるコロンとインデントのエラー
たとえば以下のようなプログラムを実行します.if 1 == 1: print('Hello World')これを実行すると以下のような出力が得られます.
Hello World
if文を使う時に多いエラー!コロン:
ifの条件式を書いた後に「:」をつけなければエラーが出力されます.たとえば以下のようなプログラムです.if 1 == 1 print('Hello World')他のプログラミング言語も使っている人に間違いが多いです,ご注意...
if文を使う時に多いエラー!インデント
インデントとは,プログラムを書くときに,その構造がわかりやすいように一行さげておくことです.以下はエラーのあるプログラムです.if 1 == 1: print('Hello World!')ifの条件分岐下で実行したいprint関数がインデントされていないので,"expected an indented block"というエラーが出力されます.
等しいことは==で表す,代入演算子=との違い
いま,1と1が等しいことを判定するために「==」を使いました.普段の数学とは違う感覚かと思います.「=」を使ってしまうとそれは代入の意味になります.よって正しく判定してくれます.1==1が返す値とは?
ifの直後に1==1と書いてありますが,これが何を表しているのでしょうか.実はこれは以下のプログラムを実行するとわかります.print(1 == 1)この出力が以下のようになります.
Trueでは,両辺が等しくないような場合,たとえば,
print(1 == 0)を実行すると,
Falseと出力されます.つまり,if文は後ろの式のTrue,False判定して分岐するということです.
不等号を用いた比較方法
まとめると以下のようになります.≠と等号を含む不等号の表記方法が特に覚えておく必要があります.(以下はプログラムではないです)プログラム中 数学的な表記 x == y x=y x != y x≠y x > y x>y x < y x<y x >= y x≧y x <= y x≦yそれぞれの論理式が正しければ,True,間違って入ればFalseを返すことになります.
変数を用いた比較とelse文の使い方
以下のようなプログラムを実行します.i = 2 if i > 1: print('i is larger than 1')出力結果は
i is larger than 1となります.1行目でiに1を代入していて,i > 1は正しいので,if文の中身が実行されました.
もし,if文の条件を満たさなかったら?
以下のプログラムを実行します.i = 2 if i < 1: print('i is smaller than 1')これを実行しても何も出力されません.ifの条件式がFalseだからです.このような時にはどうすればよいでしょうか.
i = 2 if i < 1: print('i is smaller than 1') elif i > 1: print('i is larger than 1')これを実行すれば,
i is larger than 1と出力されます.elifというのはelse ifの略ですね.では,以下の場合はどうでしょう.
i = 1 if i < 1: print('i is smaller than 1') elif i > 1: print('i is larger than 1')これは何も出力してくれません.iが1のときにも判定するようにしたければ,たとえばelif文を使えば,
i = 1 if i < 1: print('i is smaller than 1') elif i > 1: print('i is larger than 1') elif i == 1: print('i is equal to 1')を使えばよいです.でも他に場合分けもないですし,最後にもう一回条件を追加するのもなんだか面倒ですね.
else文の使い方・例外処理でバグの防止
先ほどのプログラムで,i = 1 if i < 1: print('i is smaller than 1') elif i > 1: print('i is larger than 1') else: print('i is equal to 1')というように6行目の条件分岐をelseで済ませることができます.
else文のいいところ
例外処理という問題があります.というのも,想定外の入力というものが来た時,プログラムが誤作動を起こす可能性があります.そのとき,else文で想定外の入力に対する対応を決めておくと,バグを防ぐことができます.たとえば,強制的にプログラムを終了させるプログラムを仕込んでおくとか.