Pythonのif文の基本!条件分岐の書き方とelifの使い方
生徒
「Pythonで、条件によって処理を変えたいときはどうすればいいんですか?」
先生
「それにはif文
という条件分岐の仕組みを使います。Pythonではとてもシンプルに書けますよ。」
生徒
「あと、elif
っていうのも見たことがあります。ifと何が違うんですか?」
先生
「その違いも含めて、if文の基本から順番にやさしく解説していきましょう。」
1. Pythonのif文とは?条件に応じて処理を分ける
if文(いふぶん)とは、「もし〜なら〜する」というように、条件に応じてプログラムの動きを分ける方法です。これを条件分岐といいます。
たとえば、「年齢が20歳以上なら入場OK、そうでなければNG」といった判断ができます。
age = 18
if age >= 20:
print("入場できます")
(何も表示されない)
この例では、age
が20未満なので、何も表示されません。
2. elseを使って「そうでないとき」の処理を書く
条件が当てはまらなかった場合に別の処理をしたいときは、else
を使います。
elseは「そうでなければ」という意味です。
age = 18
if age >= 20:
print("入場できます")
else:
print("未成年のため入場できません")
未成年のため入場できません
3. elifで条件をさらに追加する
elif
は「else if」の略で、「もしこれなら…それでもなければ…」と複数の条件を順に調べることができます。
たとえば、年齢によってメッセージを変えたいときに使います。
age = 17
if age >= 65:
print("シニア料金です")
elif age >= 20:
print("通常料金です")
else:
print("学生料金です")
学生料金です
上から順に条件を調べて、最初に当てはまった処理だけが実行されます。
4. インデント(字下げ)がとても重要!
Pythonでは、インデント(行の先頭をスペースで下げること)が文法の一部です。
if文やelse文のあとには「:」(コロン)を書き、その次の行は必ず字下げして書きます。
インデントがないとエラーになります。
x = 10
if x > 5:
print("5より大きい")
print("条件とは関係ない行")
5より大きい
条件とは関係ない行
print("5より大きい")
はifの条件に従いますが、その下のprint("条件とは関係ない行")
は常に実行されます。
5. 複数の条件を同時にチェックする(and / or)
if文では、and(かつ)やor(または)を使って、複数の条件を組み合わせることもできます。
age = 22
student = True
if age < 25 and student:
print("学割が使えます")
学割が使えます
and
は両方が当てはまるとき、or
はどちらかが当てはまればOKです。
6. 数値以外でも使えるif文の例
if文は数字だけでなく、文字列やブール値(True
かFalse
)にも使えます。
answer = input("Pythonは好きですか? (yes/no):")
if answer == "yes":
print("ありがとうございます!")
else:
print("これから好きになってくれると嬉しいです")
Pythonは好きですか? (yes/no):yes
ありがとうございます!
7. if文のネスト(入れ子)にも注意
if文の中にさらにif文を書くこともできます。これをネスト(入れ子)といいます。
age = 25
gender = "male"
if age >= 20:
if gender == "male":
print("成人男性です")
成人男性です
ネストが深くなると見にくくなるので、必要なときだけ使うのがポイントです。