【Python基礎3】条件分岐(if文)の使い方|効率的なプログラムの分岐処理を学ぶ

条件分岐とは?プログラムの流れを制御する重要な概念

条件分岐の概要

プログラムにおける条件分岐は、「ある条件が成立するかどうかによって異なる処理を実行する」仕組みです。たとえば、ユーザーが入力した数値が正の数か負の数かを判定し、それに応じて異なるメッセージを表示するといった用途があります。

なぜ条件分岐が重要なのか?

条件分岐を使うことで、次のような柔軟なプログラムを作成できます。

  • 入力に応じた処理の切り替え
  • 特定の条件下でのみ実行する処理
  • プログラムの流れを動的に制御

Pythonのif文の基本構文

基本的なif文の書き方

Pythonのif文は次のように記述します。

if 条件式:
    実行する処理

具体例

x = 10
if x > 0:
    print("xは正の数です")

このプログラムでは、xが0より大きい場合に「xは正の数です」と出力されます。

if文におけるelseとelifの使い方

elseの使い方(条件が成立しなかった場合の処理)

elseは、「ifの条件が成立しないときに実行する処理」を記述します。

構文:

if 条件式:
    実行する処理1
else:
    実行する処理2

例:

x = -5
if x > 0:
    print("xは正の数です")
else:
    print("xは0以下です")

この場合、xが負の数なので「xは0以下です」が出力されます。

elifの使い方(複数の条件を連続して判定する)

elifは「複数の条件を順に評価し、成立した条件に応じて処理を実行する」ために使います。

構文:

if 条件式1:
    実行する処理1
elif 条件式2:
    実行する処理2
else:
    実行する処理3

例:

score = 85

if score >= 90:
    print("評価: A")
elif score >= 70:
    print("評価: B")
else:
    print("評価: C")

この場合、scoreが85なので「評価: B」が出力されます。

複雑な条件を扱うための論理演算子

and, or, notを使った条件の組み合わせ

複数の条件を組み合わせたい場合は、and(かつ)、or(または)、not(否定)を使います。

例1: and(両方の条件が成立する場合)

x = 10
y = 5

if x > 0 and y > 0:
    print("xもyも正の数です")

このプログラムでは、xyがともに正の数の場合にメッセージを表示します。

例2: or(いずれかの条件が成立する場合)

age = 15

if age < 18 or age > 65:
    print("割引が適用されます")

この例では、ageが18歳未満か65歳以上の場合に割引が適用されます。

例3: not(条件の否定)

is_student = False

if not is_student:
    print("学生ではありません")

このプログラムでは、is_studentFalseのときに「学生ではありません」と表示されます。

1行で書くif文(簡略化した記述方法)

1. if文を1行で書く方法(単一の処理の場合)

1行でif文を書く場合、次のように記述します。

構文:

実行する処理 if 条件式

例:

x = 10
if x > 0: print("xは正の数です")

2. 条件演算子(三項演算子)を使った1行if文

構文:

結果1 if 条件式 else 結果2

例:

x = 10
result = "正の数" if x > 0 else "0以下"
print(result)

この場合、xが0より大きいので「正の数」と表示されます。

条件式の短縮記法:or文を使った初期値設定

or文を使った変数の初期化

or文を使うことで、変数がNoneや空である場合にデフォルト値を設定できます。

例:

name = None
greeting = name or "ゲスト"
print(f"こんにちは、{greeting}さん!")

このプログラムでは、nameNoneなので「こんにちは、ゲストさん!」と出力されます。

条件分岐を使った具体例

ユーザー入力を利用した条件分岐

ユーザーに年齢を入力させ、その年齢に応じたメッセージを表示するプログラムを作成します。

例:

age = int(input("あなたの年齢を入力してください: "))

if age < 18:
    print("未成年です")
elif age < 65:
    print("成人です")
else:
    print("シニア世代です")

このプログラムでは、ユーザーが入力した年齢に基づいて異なるメッセージを表示します。

ネストされた条件分岐(ifの中にif)

ネストされたif文の使い方

if文の中にさらにif文を入れることで、より複雑な条件を判定できます。

例:

number = int(input("数字を入力してください: "))

if number > 0:
    if number % 2 == 0:
        print("正の偶数です")
    else:
        print("正の奇数です")
else:
    print("0または負の数です")

このプログラムでは、入力された数値が正の偶数か正の奇数かを判定します。

よくある間違いとトラブルシューティング

コロンの付け忘れ

if文の条件部分の後には必ず「:」を付ける必要があります。忘れるとSyntaxErrorが発生します。

間違い例:

if x > 0
    print("正の数です")

正しい例:

if x > 0:
    print("正の数です")

インデント(字下げ)のミス

Pythonではインデントが正しくないとエラーになります。if文に続く処理は必ず一段階インデントするようにしましょう。

間違い例:

if x > 0:
print("正の数です")  # インデントがないためエラー

正しい例:

if x > 0:
    print("正の数です")

まとめと次のステップ

条件分岐は、プログラムを動的に制御するための基本的な要素です。if文、else文、elif文、論理演算子を活用することで、柔軟なプログラムが書けるようになります。特殊な1行if文やor文の短縮記法も使いこなすと、コードがよりシンプルで読みやすくなります。次のステップとして、ループ(for文やwhile文)と組み合わせてより複雑な処理に挑戦してみましょう!