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



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に等しい"
が出力されます。


4. elseについて
else
は、if
やelif
のいずれの条件も真(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
文やelif
、else
の中にさらに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です")
この例では、z
がFalse
であるため、not
演算子によって条件が真になり、"zはFalseです"
が出力されます。


7. 例題
7.1. 例題1:修理費用の見積もり
- テレビの修理:5000円
- 冷蔵庫の修理:7000円
- 部品交換あり:+2000円
機器の種類と部品交換の有無に応じて、合計修理費用を計算するPythonプログラムを作成してください。機器の種類は「テレビ」か「冷蔵庫」を入力し、部品交換が必要な場合は「yes」、不要な場合は「no」と入力してください。
期待される出力:
機器が「テレビ」で部品交換が必要な場合:
機器の種類を入力してください (テレビ/冷蔵庫): テレビ
部品交換が必要ですか? (yes/no): yes
修理費用は 7000 円です
機器が「冷蔵庫」で部品交換が不要な場合:
機器の種類を入力してください (テレビ/冷蔵庫): 冷蔵庫
部品交換が必要ですか? (yes/no): no
修理費用は 7000 円です
解答の手順:
- ユーザーに機器の種類(「テレビ」または「冷蔵庫」)を入力させます。
- 次に、部品交換が必要かどうかを「yes」または「no」で入力させます。
if-elif
文を使って、入力された機器の種類に応じて基本修理費用を決定します。- 部品交換が必要な場合は、修理費用に追加料金を加算します。
- 最後に、合計修理費用を表示します。
解答:
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:サイコロのシミュレーション
期待される出力:
seed値を固定して乱数を使用するため、同じ結果になるとは限りません。
1回目のサイコロの出目: 3
2回目のサイコロの出目: 6
おめでとう!
3回目のサイコロの出目: 4
4回目のサイコロの出目: 2
5回目のサイコロの出目: 5
6回目のサイコロの出目: 1
7回目のサイコロの出目: 6
おめでとう!
8回目のサイコロの出目: 2
9回目のサイコロの出目: 6
おめでとう!
10回目のサイコロの出目: 3
解答の手順:
- Pythonの
random
モジュールをインポートして、ランダムな値を生成できるようにします。 - 1から6までのランダムな整数を生成する
random.randint()
関数を使用して、サイコロの目をシミュレーションします。 - ループを使ってサイコロを10回振り、それぞれの結果を表示します。
- 出目が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の魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!