Biz-IT Blog

Business x IT --> Upgrade!

第4章 4.1 if 文

この章では、プログラムの処理をある条件によって分岐させる方法(if文)について解説します。

if文

if文には次の3つの構文があります。

構文1(if-else文)

<if-else文の表記方法>

if 条件式:
 条件が成立した時の処理(if ブロック)
else:
 条件が成立しなかった時の処理(else ブロック)

後続処理

※ifの後ろに条件式を記載する。
※条件式が成立したら(Trueとなったら)、if ブロックの処理を行う。
※条件式が成立しなかった(Falseとなったら)、else ブロックの処理を行う。
※if ブロックまたは else ブロックの処理後はブロックを抜けて、後続処理が行われる。
 

構文2(if文のみ)

条件式が成立した時のみ、ifブロックの処理を実行したい場合は、以下のif文のみの構文を用います。

<if文のみの表記方法>

if 条件式:
 条件式が成立した時の処理

後続処理

pythonでは、空のブロックはエラーになります。
※if-elseの構文で空のブロックを作成したい場合、passを記述する必要があります。

<if-else文でifブロックのみを処理する場合>

if 条件式:
 条件式が成立した時の処理
else:
 pass

後続処理
 

構文3(if-elif文)

条件式が成立しなかった時、後続の条件式で順次判定をしたい場合、if-elif構文を用います。

<if-elif構文の表記方法>

if 条件式1:
 ブロック1
elif 条件式2:
 ブロック2
・・・
elif 条件式n:
 ブロックn
else:
 elseブロック

後続処理

※条件式1が成立した場合はブロック1が、条件式2が成立した場合はブロック2が、条件式nが成立した場合はブロックnが、処理される。
※条件式1からnのいずれも成立しなかったらelseブロックが処理される。
 
<if文のプログラム例>

# 変数xに試験の点数を代入
x = input('試験の点数を入力してください=')
x = int(x)
# 点数が70点以上は合格、そうでなければ不合格
if x >= 70:
    print('合格です')
else:
    print('不合格です')

<実行結果>
(70と入力した場合)
試験の点数を入力してください=70
合格です
(60と入力した場合)
試験の点数を入力してください=60
不合格です
 
 

ブロックとインデント

if ブロックとelse ブロックの範囲は、それぞれインデントで指定する。(ブロックを右ずらしする)
注意)インデントを行わない、あるいは、インデントの位置が揃っていないとエラーになります。

<プログラム例>

# 変数xに試験の点数を代入
x = input('試験の点数を入力してください=')
x = int(x)
# 点数が70点以上は合格、そうでなければ不合格
if x >= 70:
    print('合格です')
    # インデントが1文字ズレている
     print('おめでとう!')
else:
    print('不合格です')
    # インデントされていないため、elseブロックと認識されない
print('追試を受けてください')

<実行結果>
File "c: ~ ", line 8
print('おめでとう!')
IndentationError: unexpected indent

8行目がインデントエラーになります。

<プログラム例>
if ブロックのインデントエラーを修正

# 変数xに試験の点数を代入
x = input('試験の点数を入力してください=')
x = int(x)
# 点数が70点以上は合格、そうでなければ不合格
if x >= 70:
    print('合格です')
    # インデントエラーを修正
    print('おめでとう!')
else:
    print('不合格です')
    # インデントされていないため、elseブロックと認識されない
print('追試を受けてください')

<実行結果>
試験の点数を入力してください=90
合格です
おめでとう!
追試を受けてください

※12行目がインデントされておらず、elseブロックになっていない(=if文の後続処理になっている)ため、点数にかかわらず「追試を受けてください」が表示されてしまいます。
 
 
次のページへ
Pythonトップへ戻る