PR
更新:2024/09/16

Pythonの条件分岐 (if, elif, else)・論理演算子・例題について

はるか
はるか
条件分岐については、if文が基本だね。条件がTrueならコードが実行される。
ふゅか
ふゅか
そうそう!if文で特定の条件に応じた動作ができるから、プログラムがより柔軟に対応できるわね。例えば、xが5より大きければそのことを表示できるってわけね!

1. 条件分岐

Pythonの条件分岐 (if, elif, else)は、プログラムが特定の条件を満たすかどうかを確認し、その結果に応じて異なる処理を実行するための構文です。条件分岐を使うことで、プログラムに動的な振る舞いを持たせることができます。

2. if文について本

if文は、最初に条件を評価し、その条件が真(True)である場合にブロック内のコードを実行します。条件が偽(False)である場合は、そのブロック内のコードは無視されます。

2.1. 基本的な構文

if 条件:
    # 条件がTrueの場合に実行される処理

2.2. 例

x = 10
if x > 5:
    print("xは5より大きい")

上記の例では、xが5より大きいため、"xは5より大きい"が出力されます。

3. elif(else if)について

elifは、最初のif文の条件が偽(False)だった場合に、別の条件をチェックするために使用します。elifはいくつでも追加することができます。

3.1. 基本的な構文

if 条件1:
    # 条件1がTrueの場合に実行される処理
elif 条件2:
    # 条件1がFalseかつ条件2がTrueの場合に実行される処理

3.2. 例

x = 5
if x > 10:
    print("xは10より大きい")
elif x == 5:
    print("xは5に等しい")

この場合、xは5なので、"xは5に等しい"が出力されます。

ふゅか
ふゅか
if文の次に大事なのはelifね!最初のifがFalseだったら、次の条件をチェックするために使うのよ。
はるか
はるか
うん。条件がFalseならelifで別の条件を試す。elseも忘れずに。どの条件も当てはまらなければ、デフォルトの処理を実行できる。

4. elseについて

elseは、ifelifのいずれの条件も真(True)ではなかった場合に、デフォルトで実行されるブロックです。elseには条件が不要で、一度しか使用できません。

4.1. 基本的な構文

if 条件1:
    # 条件1がTrueの場合に実行される処理
elif 条件2:
    # 条件1がFalseかつ条件2がTrueの場合に実行される処理
else:
    # どの条件もTrueでない場合に実行される処理

4.2. 例

x = 2
if x > 10:
    print("xは10より大きい")
elif x == 5:
    print("xは5に等しい")
else:
    print("xは10より小さく、5でもない")

ここでは、xが2なので、どちらの条件も満たさず、elseブロックの"xは10より小さく、5でもない"が出力されます。

5. 条件のネスト

if文やelifelseの中にさらにif文を記述することもできます。これをネストと呼び、複雑な条件を表現するのに役立ちます。

5.1. 例

x = 15
if x > 10:
    if x < 20:
        print("xは10より大きく、20より小さい")

この例では、まずxが10より大きいかチェックし、その条件が真であれば、さらにxが20より小さいかどうかもチェックします。結果的に、"xは10より大きく、20より小さい"が出力されます。

はるか
はるか
ネストをしすぎるとプログラムが読みにくくなる。

6. 複数の条件を扱う(論理演算子)

if文では、論理演算子を使用して複数の条件を同時にチェックすることができます。

  • and: すべての条件が真である場合に真になります。
  • or: いずれかの条件が真であれば真になります。
  • not: 条件が偽であれば真になります。

6.1. andの例

x = 8
if x > 5 and x < 10:
    print("xは5より大きく、10より小さい")

この例では、xが5より大きく、かつ10より小さいため、条件が真となり、"xは5より大きく、10より小さい"が出力されます。

6.2. orの例

y = 3
if y < 2 or y > 1:
    print("yは2より小さいか、1より大きい")

この例では、yが1より大きいため、orの条件の一部が真となり、"yは2より小さいか、1より大きい"が出力されます。

6.3. notの例

z = False
if not z:
    print("zはFalseです")

この例では、zFalseであるため、not演算子によって条件が真になり、"zはFalseです"が出力されます。

ふゅか
ふゅか
それから、複数の条件を同時にチェックしたいときには論理演算子が便利ね!andとかorを使うことで、条件を組み合わせて判定できるの。
はるか
はるか
andはすべての条件がTrueなら実行、orは一つでもTrueなら実行される。条件の組み合わせ次第で柔軟に処理が可能。

7. 例題

7.1. 例題1:修理費用の見積もり

ある家電修理サービスでは、修理の費用を次のように計算します。修理対象の機器と部品の交換が必要かどうかによって、費用が異なります。
  • テレビの修理:5000円
  • 冷蔵庫の修理:7000円
  • 部品交換あり:+2000円

機器の種類と部品交換の有無に応じて、合計修理費用を計算するPythonプログラムを作成してください。機器の種類は「テレビ」か「冷蔵庫」を入力し、部品交換が必要な場合は「yes」、不要な場合は「no」と入力してください。

期待される出力:

機器が「テレビ」で部品交換が必要な場合:

機器の種類を入力してください (テレビ/冷蔵庫): テレビ
部品交換が必要ですか? (yes/no): yes
修理費用は 7000 円です

機器が「冷蔵庫」で部品交換が不要な場合:

機器の種類を入力してください (テレビ/冷蔵庫): 冷蔵庫
部品交換が必要ですか? (yes/no): no
修理費用は 7000 円です

解答の手順:

  1. ユーザーに機器の種類(「テレビ」または「冷蔵庫」)を入力させます。
  2. 次に、部品交換が必要かどうかを「yes」または「no」で入力させます。
  3. if-elif文を使って、入力された機器の種類に応じて基本修理費用を決定します。
  4. 部品交換が必要な場合は、修理費用に追加料金を加算します。
  5. 最後に、合計修理費用を表示します。

解答:

device = input("機器の種類を入力してください (テレビ/冷蔵庫): ")
part_replacement = input("部品交換が必要ですか? (yes/no): ")

cost = 0

# 基本修理費用の設定
if device == "テレビ":
    cost = 5000
elif device == "冷蔵庫":
    cost = 7000
else:
    print("無効な機器の種類です")

# 部品交換が必要な場合、追加料金を加算
if part_replacement == "yes":
    cost += 2000

if cost > 0:
    print(f"修理費用は {cost} 円です")

7.2. 例題2:サイコロのシミュレーション

サイコロを10回振るシミュレーションを行うPythonプログラムを作成してください。このプログラムでは、1から6までの数字をランダムに生成し、サイコロの結果を表示します。また、結果が「6」の場合には「おめでとう!」と特別なメッセージを表示してください。

期待される出力:

seed値を固定して乱数を使用するため、同じ結果になるとは限りません。

1回目のサイコロの出目: 3
2回目のサイコロの出目: 6
おめでとう!
3回目のサイコロの出目: 4
4回目のサイコロの出目: 2
5回目のサイコロの出目: 5
6回目のサイコロの出目: 1
7回目のサイコロの出目: 6
おめでとう!
8回目のサイコロの出目: 2
9回目のサイコロの出目: 6
おめでとう!
10回目のサイコロの出目: 3

解答の手順:

  1. Pythonのrandomモジュールをインポートして、ランダムな値を生成できるようにします。
  2. 1から6までのランダムな整数を生成するrandom.randint()関数を使用して、サイコロの目をシミュレーションします。
  3. ループを使ってサイコロを10回振り、それぞれの結果を表示します。
  4. 出目が6の場合に特別なメッセージを表示します。

解答:

import random

# サイコロを10回振る
for i in range(1, 11):
    dice_roll = random.randint(1, 6)  # 1から6までのランダムな数を生成
    print(f"{i}回目のサイコロの出目: {dice_roll}")

    # 出目が6の場合、特別なメッセージを表示
    if dice_roll == 6:
        print("おめでとう!")


check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR