週末SEのメモブログ

日曜大工ならぬ日曜SEの備忘録

第4回:Pythonプログラミング入門 条件文(if文)

プログラミングにはある一連の処理の中で、Aの場合はA'という処理、Bの場合はB'という処理、そうでない場合は何も処理しない、といったように条件によって処理を変えることが頻繁に登場します。

Pythonでは、if、elif、elseのキーワードを条件文に使います。

具体的なコードに落とす前に日本語を使って上記を書いてみます。

※例なので、実行しないでください

もし A(式) なら

   A'という処理コード群

もし B(式) なら

   B'という処理コード群

もしそうでなければ

   (なにも書かない )

 

 最初のA(式)がTrueと評価される場合、「A'という処理コード群」に書かれたコードが実行され、Bは評価されず、B'という処理もされません。A(式)がFalseと評価されB(式)がTrueと評価される場合、A'は処理されず、「B'という処理コード群」に書かれたコードがすべて実行されます。

上記の初めの「もし」はif文、2つ目以降の「もし」はelif文、最後の「もしそうでなければ」はelse文と呼ばれます。

実際にコードに落とし込むと下記のようになります。

time = "朝"

if time == "朝":

    print("おはようございます!") 

elif time == "昼":

    print("こんにちは!")

else:

# 処理なし

 if文、elif文、else文の最後にはコロン(:)が必要になるので注意してください。

また条件文はif文のみや複数のif文の記載もできます。

# if文単独の記載

country = "日本"

if country == "日本":

    print("初めまして!")

 

# 複数のif文を記載する場合

a = 2

if a == 2:

    print("aは2です。")

if a % 2 == 0:

    print("aは偶数です。")

if a % 2 != 0:

    print("aは奇数です。")

 「if文単独の記載」のコードでは、1回のみ評価され、式の結果はTrueなので、処理が実行されます。「複数のif文を記載する場合」のコードは上2つのif文がTrueと評価され、インデントされた下のプログラムが実行されますが、3つ目のif文はFalseのため実行されません。

複数のif文と間にelifを入れて記載した内容の違いについてですが、

複数if文を書いた場合では、上からすべてのif文が評価され、各評価でTrueの場合はそれぞれインデントされたコード群が実行されます。

対して、elifを使って複数の条件文書いた場合は、頭のif文から評価され、最初に評価結果がTrueを返した式のインデントしたコード群のみ実行されます。仮に下記のように書いた場合、「aは2です。」という表示のみされます。

a = 2

if a == 2:

    print("aは2です。")

elif a % 2 == 0:

    print("aは偶数です。")

elif a % 2 != 0:

    print("aは奇数です。")

else:

    print("elseに該当")