第4章: 制御フロー

4-control-flow

この章では、Pythonの制御フローについて学びます。制御フローは、プログラムの実行順序を制御するために使用されます。具体的には、条件分岐やループの使い方を理解することで、プログラムがどのように実行されるかをコントロールできるようになります。

目次

4.1 if-else文による条件分岐

if-else文は、条件に基づいて異なるコードを実行するために使われます。Pythonのif文では、条件がTrueの場合にコードブロックが実行されます。

基本的な構文

if 条件:
    # 条件がTrueの場合に実行されるコード
else:
    # 条件がFalseの場合に実行されるコード

例:if-else文

age = 20

if age >= 18:
    print("あなたは成人です。")
else:
    print("あなたは未成年です。")

この例では、ageが18以上の場合に「あなたは成人です。」と表示され、それ以外の場合には「あなたは未成年です。」と表示されます。

4.2 elif文による複数条件の分岐

elif(else if)を使うことで、複数の条件を設定し、それぞれに異なるコードを実行することができます。これは、複数の分岐が必要な場合に便利です。

基本的な構文

if 条件1:
    # 条件1がTrueの場合に実行されるコード
elif 条件2:
    # 条件2がTrueの場合に実行されるコード
else:
    # 条件1と条件2がどちらもFalseの場合に実行されるコード

例:elif文

score = 75

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

この例では、scoreの値に応じて、異なる評価を表示します。

4.3 switch文の代替: 辞書を使った分岐

Pythonにはswitch文がありませんが、辞書(dictionary)と関数を使って、似たような動作を実現できます。

例:辞書を使った代替

def case1():
    return "ケース1"

def case2():
    return "ケース2"

def default_case():
    return "デフォルトケース"

switch_dict = {
    1: case1,
    2: case2
}

choice = 1
result = switch_dict.get(choice, default_case)()
print(result)

この例では、choiceに基づいて関数が選択され、結果が表示されます。getメソッドの第二引数は、choiceが辞書に存在しない場合のデフォルト値です。

4.4 ループ処理

ループは、同じコードを複数回実行するために使われます。Pythonには、forループとwhileループの2種類のループがあります。

forループ

forループは、指定された範囲やコレクション内の要素に対して反復処理を行います。

for 変数 in コレクション:
    # 繰り返し実行されるコード

例:forループ

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num)

この例では、リストnumbersの各要素に対してループが実行され、それぞれの要素が表示されます。

whileループ

whileループは、条件がTrueの間、コードを繰り返し実行します。

while 条件:
    # 条件がTrueの間実行されるコード

例:whileループ

count = 0

while count < 5:
    print(count)
    count += 1

この例では、countが5未満の間、countの値が表示され、ループごとにcountが1ずつ増加します。

4.5 break, continue, return文の使い方

  • break: ループを強制的に終了します。
  • continue: ループの残りの処理をスキップし、次のイテレーションに移ります。
  • return: 関数内で使用され、関数の実行を終了し、値を返します。

例:break文とcontinue文

for i in range(10):
    if i == 5:
        break  # ループを終了する
    if i % 2 == 0:
        continue  # 偶数の場合は次のループに進む
    print(i)

この例では、iが5に達したときにループが終了し、iが偶数のときはそのイテレーションをスキップして次のループに進みます。

4.6 goto文とラベルの適切な使い方

Pythonには、他の言語にあるようなgoto文がありません。Pythonの設計理念として、コードの可読性や構造化を重視しているため、gotoのような制御の飛び先を指定する文は推奨されていません。

その代わりに、関数やループ、条件分岐を効果的に使うことで、スパゲッティコードになるのを防ぐことが重要です。

まとめ

この章では、Pythonにおける制御フローの基本を学びました。条件分岐、ループ、breakcontinueの使い方を理解することで、より柔軟で効果的なプログラムを書けるようになります。次の章では、メソッドとスコープについて詳しく見ていきます。

目次