pythonのif文による条件分岐処理

Pythonにも他のプログラミング言語と同様に、同じ処理を繰り返したり、条件分岐をしたりといった処理が可能です。条件分岐や繰り返しを行う場合に重要なのが制御構造です。Pythonの制御構造はインデントによるブロックが大きな特徴になりますので、条件分岐や切り返し制御を行う場合は、制御構造を意識してコードを書いていくことが重要です。

if文を使った条件判断

bool型について

if文で使用する組み込み型に、「bool型」という型があります。bool型は「True(真)」と「False(偽)」という2つの値のいずれかを取るデータ型になります。

bool型はif文などの制御分でよく利用されます。

代入演算子 意味
a and b aもbもTrueならTrue
a or b aかbがTrueならTrue
a == b aとbが同じならTrue
a != b aとbが異なればTrue
not b aがFalseならTrue
a > b aがbより大きければTrue
a >= b aがb以上ならTrue
a < b aがbより小さければTrue
a <= b aがb以下ならTrue

bool型を実行例は以下の通りです。

>>> 10 > 2
True
>>> 10 < 2
False

Pythonでif文を使用する場合、ifの次に「条件式」を記述します。その条件式にマッチすれば、そのうしろの「ブロック」部分が実行されます。

if文を使った例として、計算問題の答えを入力させて正解なら「合格」と表示させてみます。

% vim if.py
kekka = int(input("10 + 5 ="))

if kekka == 15:
    print ("正解です")

input()関数で入力した値を、int()関数で文字列から整数値に変換し、変数kekkaに代入しています。

条件式では、if kekka == 15:と記述していますので、「kekkaの値が15であればTrue」となり、うしろのブロックである「print()」関数が実行されます。

実際の実行結果は以下の通りとなります。

% python if.py
10 + 5 =15
正解です

% python if.py
10 + 5 =13

今回のコードでは、15以外の値を入力すると何も表示されませんので、条件式がFalseだった場合の処理についても記述していきます。

条件式がFalseだった場合の処理

以下のように「else」を使用すると、if文による条件式でFalseとなった場合の処理を記述できます。

% vim if.py
kekka = int(input("10 + 5 ="))

if kekka == 15:
    print ("正解です")
else:
    print ("不正解です")

実行結果は以下の通りです。

% python if.py
10 + 5 =15
正解です

% python if.py
10 + 5 =13
不正解です

条件式を3つ以上に分けたい場合

ifとelseだけではなく、条件式を3つ以上に分けたい場合は、「elif」を使用します。

例えば年齢を入力し、年齢によってチケットの代金を変更するようなプログラムをif文で実現する場合は、以下のように記述します。

% vim if.py
age = int(input("年齢を入力してください:"))

if  age < 5:
    print ("チケットは無料です。")
elif age < 15:
    print ("チケットは1500円です。")
else:
    print ("チケットは2500円です。")

実行結果は以下の通りです。

% python if.py
年齢を入力してください:1
チケットは無料です。

% python if.py
年齢を入力してください:5
チケットは1500円です。

% python if.py
年齢を入力してください:50
チケットは2500円です。

if文を入れ子で使用する

if文の中にほかのif文を入れることも可能です。例えば先ほどの年齢ごとにチケット代金を変更するプログラムに、さらに性別によってチケット代金を変更するようにしてみます。女性の場合、男性よりも2割安い代金にしてみます。

% vim if.py
age = int(input("年齢を入力してください:"))
sex = int(input("性別を入力してください(男性:1、女性:2):"))

if  age < 5:
    print ("チケットは無料です。")
elif age < 15:
    if sex == 1:
        print ("チケットは1500円です。")
    elif sex == 2:
        print ("チケットは1200円です。")
else:
    if sex == 1:
        print ("チケットは2500円です。")
    elif sex == 2:
        print ("チケットは2000円です。")

最初のif文で年齢ごとに実行するブロックを制御し、さらにその下のif文で性別ごとに実行するブロックを制御しています。if文の階層の深さに応じて、適切にインデントしなければエラーになりますので注意してください。

実行結果は以下の通りです。

% python if.py
年齢を入力してください:10
性別を入力してください(男性:1、女性:2):1
チケットは1500円です。

% python if.py
年齢を入力してください:10
性別を入力してください(男性:1、女性:2):2
チケットは1200円です。

% python if.py
年齢を入力してください:30
性別を入力してください(男性:1、女性:2):1
チケットは2500円です。

% python if.py
年齢を入力してください:30
性別を入力してください(男性:1、女性:2):2
チケットは2000円です。

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: