【Python 文法】if文による条件分岐の基本を徹底解説!else/elifの使い方もマスター

Python

Pythonのプログラミングを学び始めると、必ず出会うのが「条件分岐」です。 「もし〇〇だったらAを実行し、そうでなければBを実行する」といったように、状況に応じて処理の流れを変えることは、あらゆるプログラムの基本となります。

この記事では、Pythonにおける条件分岐の基本であるif文の使い方を、初心者の方にも分かりやすく、豊富なコード例とともに解説します。

この記事を読み終える頃には、if, else, elifを使った基本的な条件分岐を自由に書けるようになっているはずです。

はじめに:Pythonの条件分岐(if文)とは?

Pythonにおける条件分岐とは、ある条件が満たされているか(真/True)どうかを判断し、その結果によって次に実行する処理を変える仕組みのことです。

この仕組みを実現するのがif文です。 例えば、「ユーザーが入力したパスワードが正しいか」「テストの点数が60点以上か」などを判定し、その後の処理を分岐させることができます。

if文をマスターすることは、対話的なプログラムや、データに応じた処理を行う上で不可欠なスキルと言えるでしょう。

Pythonのif文の基本的な書き方

if文の最もシンプルな形は、条件が満たされたときだけ特定の処理を行うというものです。

書き方は非常にシンプルです。 ifの後に条件式を書き、コロン:を続けます。そして、次の行に**インデント(半角スペース4つが推奨)**を入れて、実行したい処理を記述します。

# if (条件式):
#     (インデント)条件が真(True)のときに実行される処理

# 具体的な例
age = 20
if age >= 20:
    print("お酒をどうぞ。")

この例では、変数age20以上であるという条件が満たされる(真/True)ため、print("お酒をどうぞ。")が実行されます。

もしage18だった場合、条件は満たされない(偽/False)ため、print文は実行されずにプログラムは終了します。

ポイントはインデント(字下げ)です。 Pythonではインデントによってコードのブロックを表現するため、if文の後に続く処理は必ずインデントを入れる必要があります。インデントがないとエラーになるので注意しましょう。

条件が満たされない場合の処理 else

ifの条件が満たされなかった場合に、別の処理を実行したいときに使うのがelseです。

if文のブロックに続けてelse:と記述することで、「もし条件が真ならこれを実行し、そうでなければこちらを実行する」という分岐が作れます。

# if (条件式):
#     (インデント)条件が真(True)のときに実行される処理
# else:
#     (インデント)条件が偽(False)のときに実行される処理

# 具体的な例
age = 18
if age >= 20:
    print("お酒をどうぞ。")
else:
    print("20歳になってからまたお越しください。")
# 出力: 20歳になってからまたお越しください。

このコードでは、age18なのでage >= 20という条件は満たされません(偽/False)。そのため、elseブロックの中にあるprint文が実行されます。

複数の条件で判定する elif

条件分岐をさらに細かく設定したい場合、つまり3つ以上の選択肢から処理を選びたい場合にelifを使います。

elifelse ifの略で、「前のifelifの条件には当てはまらなかったけれど、もしこの条件に当てはまるならこれを実行する」という意味を持ちます。

ifelseの間に、必要なだけelifを挟むことができます。

# 具体的な例
score = 85

if score >= 90:
    print("評価はSです。素晴らしい!")
elif score >= 80:
    print("評価はAです。よくできました。")
elif score >= 60:
    print("評価はBです。合格です。")
else:
    print("評価はCです。再テストです。")

# 出力: 評価はAです。よくできました。

この例では、上から順番に条件が判定されます。

  1. score >= 90 → 85は90以上ではないので偽(False)
  2. score >= 80 → 85は80以上なので真(True) この時点でelifブロック内のprint文が実行され、それ以降のelifelseは判定されずにif文全体の処理を抜けます。

条件を細かく設定する「比較演算子」と「論理演算子」

if文の条件式では、値を比較したり、複数の条件を組み合わせたりすることが頻繁にあります。そのために使われるのが「比較演算子」と「論理演算子」です。

比較演算子一覧

2つの値を比較し、その関係が正しいか(True)間違っているか(False)を返します。

演算子意味例(a=10, b=20)結果
==等しいa == 10True
!=等しくないa != bTrue
>より大きいb > aTrue
<より小さいa < bTrue
>=以上(大きいか等しい)a >= 10True
<=以下(小さいか等しい)b <= 20True

Google スプレッドシートにエクスポート

== は等しいことを確認する演算子です。 = 1つだと代入になってしまうので注意してください。

論理演算子(and, or, not)で複雑な条件を作る

複数の条件式を組み合わせて、より複雑な判定を行うことができます。

and (かつ)

 両方の条件式がTrueの場合のみ、全体がTrueになります。

age = 25
is_student = True
# 20歳以上で、かつ、学生であるか
if age >= 20 and is_student:
    print("学割が適用される20歳以上の方です。")

or (または)

 どちらか一方でも条件式がTrueであれば、全体がTrueになります。

day = "Sunday"
# 曜日が土曜日または日曜日か
if day == "Saturday" or day == "Sunday":
    print("今日は休日です。")

not (ではない)

 条件式の結果(True/False)を反転させます。

is_raining = False
# 雨が降っていないか
if not is_raining:
    print("傘は必要ありません。")

if文の少し高度なテクニック

最後に、コードをより簡潔に書くためのテクニックを2つ紹介します。

条件式の省略形(TruthyとFalsy)

Pythonでは、数値の0、空の文字列""、空のリスト[]NoneなどはFalseとして扱われます。これ以外のほとんどの値はTrueとして扱われます。 これを利用して、if文をシンプルに書くことができます。

name = "Taro"
if name:  # nameが空文字列""ではないのでTrueと判定される
    print(f"こんにちは、{name}さん")

numbers = []
if not numbers: # numbersが空リスト[]なのでFalseと判定され、notで反転してTrueになる
    print("リストは空です。")

三項演算子でシンプルに書く

簡単なif-else文は、「三項演算子」を使うと1行で記述できます。

構文: (Trueの場合の値) if (条件式) else (Falseの場合の値)

# 通常のif文
age = 20
if age >= 20:
    message = "成人"
else:
    message = "未成年"
print(message) # 出力: 成人

# 三項演算子を使った場合
age = 20
message = "成人" if age >= 20 else "未成年"
print(message) # 出力: 成人

どちらも結果は同じですが、三項演算子を使うとよりスマートに記述できます。

まとめ

今回はPythonの条件分岐if文の基本的な使い方から、少し応用的なテクニックまでを解説しました。

  • if: 条件が真(True)のときに処理を実行する。
  • else: ifの条件が偽(False)のときに処理を実行する。
  • elif: 複数の条件で分岐させたいときに使う。
  • インデント: Pythonのif文ではインデントが文法の一部であり非常に重要。
  • 比較演算子・論理演算子: if文の条件式をより細かく、複雑に設定するために使う。

条件分岐は、あらゆるプログラムの骨格となる重要な要素です。 まずは簡単なコードからでいいので、実際に手を動かしてif文を書いてみてください。そうすることで、着実にスキルが身についていくはずです。

コメント

タイトルとURLをコピーしました