未分類

【Python】第2章第10回:条件分岐とループの組み合わせ例

Pythonでは、条件分岐(if文)とループ(for文、while文)を組み合わせることで、より柔軟な処理を実現できます。本記事では、基本的な組み合わせ方から応用例までを解説します。

0. 記事の概要

この記事を読むメリット

  • 条件分岐とループの連携:複雑なロジックを簡潔に記述できるスキルを習得します。
  • エラーを防止:実践的な例を通じて、条件分岐とループの正しい使い方を学べます。
  • 応用力を向上:データ処理やアルゴリズム構築に役立つテクニックを習得できます。

この記事で学べること

  • 条件分岐を組み合わせた基本的なループ処理
  • ネストされた条件分岐とループの使い方
  • 条件分岐とループを活用した実践例

1. 条件分岐とループの基本的な組み合わせ

1.1 基本的な構文

条件分岐とループを組み合わせることで、特定の条件に応じて繰り返し処理を実行できます。

# 条件分岐を伴うループ
for i in range(10):
    if i % 2 == 0:
        print(f"{i}は偶数です。")
動作解説
  1. for i in range(10): 0から9までの整数を生成します。
  2. if i % 2 == 0: iが偶数の場合に条件を満たします。
  3. 条件を満たす場合、printでメッセージを表示します。

1.2 ネストされた条件分岐とループ

ループ内に条件分岐を入れ子にすることで、複雑な処理を記述できます。

# ネストされた条件分岐とループ
for i in range(1, 11):
    if i % 2 == 0:
        if i % 3 == 0:
            print(f"{i}は2と3の倍数です。")
動作解説
  1. for i in range(1, 11): 1から10までの整数を生成します。
  2. if i % 2 == 0: iが偶数である場合に条件を満たします。
  3. さらに、if i % 3 == 0で3の倍数かどうかを評価します。

2. 条件分岐を伴うループの応用例

2.1 条件に基づいたリストの作成

条件分岐を用いて、特定の条件を満たす要素のみを新しいリストに追加します。

# リスト内包表記を使用した条件分岐
filtered_list = [x for x in range(20) if x % 3 == 0]
print(filtered_list)  # 出力: [0, 3, 6, 9, 12, 15, 18]
動作解説
  1. x for x in range(20): 0から19までの整数を生成します。
  2. if x % 3 == 0: 3の倍数のみをリストに追加します。

2.2 特定条件のカウント

特定の条件に一致する要素の数をカウントします。

# 特定条件のカウント
count = 0

for i in range(50):
    if i % 5 == 0:
        count += 1

print(f"5の倍数は{count}個です。")
動作解説
  1. if i % 5 == 0: iが5の倍数の場合に条件を満たします。
  2. 条件を満たすごとにcountをインクリメントします。

3. 実践例:条件分岐とループを活用したプログラム

条件分岐とループを組み合わせて、素数を判定するプログラムを作成します。

# 素数を判定
for num in range(2, 20):
    is_prime = True
    for i in range(2, num):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(f"{num}は素数です。")
動作解説
  1. for num in range(2, 20): 2から19までの整数を生成します。
  2. for i in range(2, num): numの約数を確認します。
  3. 割り切れる場合はis_primeFalseにし、ループを終了します。

4. 練習問題

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

  1. 1から100までの整数の中で、3の倍数であり5の倍数でもある数値を表示してください。
  2. 入力されたリストから、奇数のみを抽出して新しいリストを作成してください。

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

問1の解答例

# 3の倍数かつ5の倍数
for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        print(i)

問2の解答例

# 奇数を抽出
input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
odd_list = [x for x in input_list if x % 2 != 0]
print(odd_list)  # 出力: [1, 3, 5, 7, 9]

6. まとめ

Pythonで条件分岐とループを組み合わせることで、効率的で柔軟なプログラムを構築できます。基本を押さえた上で、応用例にも挑戦してください。