Python

【Python】第2章第2回:elifとelseの使い方

Pythonでは、elifelseを使用することで、複数の条件を効率的に評価することができます。本記事では、それぞれの基本的な使い方と応用例を解説します。

0. 記事の概要

この記事を読むメリット

  • elifとelseの基本を理解:条件分岐をさらに効率的に組み立てる方法を学べます。
  • 実用的なスキルを習得:複雑な条件を扱うプログラムの作成方法がわかります。
  • エラーを回避:条件分岐におけるよくあるミスを防ぐための注意点が学べます。

この記事で学べること

  • elifとelseの基本構造と使い方
  • elifとelseを活用したプログラムの作成
  • 効率的な条件分岐のコーディング方法

1. elifとelseの基本

1.1 elifの基本

elifは、「それ以外の条件」を評価するために使用します。複数の条件を順に評価する際に便利です。

# elifの基本例
score = 85

if score >= 90:
    print("優")
elif score >= 70:
    print("良")
else:
    print("可")
動作解説
  1. if: 最初に評価する条件を記述します。
  2. elif: それ以外の条件を順に評価します。
  3. else: すべての条件がFalseの場合に実行されます。

1.2 elseの基本

elseは、すべての条件が満たされない場合に実行されるデフォルトの処理を指定します。

# elseの基本例
x = 5

if x > 10:
    print("xは10より大きいです。")
else:
    print("xは10以下です。")
動作解説
  1. すべての条件が満たされない場合、elseブロックの処理が実行されます。
  2. 例では、xが10以下の場合にメッセージを表示します。

2. elifとelseを組み合わせた条件分岐

2.1 複数のelifを使用する

複数の条件を評価する際には、elifを繰り返し使用します。

# 複数のelifを使用した例
temperature = 30

if temperature >= 35:
    print("猛暑日")
elif temperature >= 30:
    print("真夏日")
elif temperature >= 25:
    print("夏日")
else:
    print("普通の日")
動作解説
  1. 条件は上から順に評価されます。
  2. 最初にTrueとなった条件の処理が実行され、それ以降の条件は評価されません。

2.2 ネストされたif文との組み合わせ

条件式をさらに細分化したい場合、if文をネストして使用します。

# ネストされたif文
age = 20
is_student = True

if age >= 18:
    if is_student:
        print("学生割引が適用されます。")
    else:
        print("成人料金です。")
else:
    print("未成年料金です。")
動作解説
  1. 最初のif文で年齢を評価します。
  2. 年齢が条件を満たした場合、次のif文で学生割引の適用を評価します。

3. 実践例:elifとelseを活用したプログラム

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

# 曜日に応じたメッセージを表示
day = input("曜日を入力してください (月火水木金土日): ")

if day == "月":
    print("1週間の始まりです!")
elif day == "金":
    print("もうすぐ週末です!")
elif day == "土" or day == "日":
    print("週末を楽しみましょう!")
else:
    print("平日ですね。")
動作解説
  1. ユーザー入力に基づいて条件を評価します。
  2. 複数の曜日をorで結合し、一度に評価しています。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 入力された点数に応じて「合格」または「不合格」を判定するプログラムを作成してください。
  2. 入力された数値が正、負、またはゼロかを判定するプログラムを作成してください。

5. 練習問題の解答と解説

問1の解答例

# 合格判定
score = int(input("点数を入力してください: "))

if score >= 50:
    print("合格です!")
else:
    print("不合格です。")

問2の解答例

# 数値の判定
number = int(input("数値を入力してください: "))

if number > 0:
    print("正の数です。")
elif number < 0:
    print("負の数です。")
else:
    print("ゼロです。")

6. まとめ

Pythonのelifelseを使用することで、複雑な条件分岐を効率的に記述できます。これを活用して、柔軟なプログラムを作成してみましょう。