Python 条件文: IF…Else、ELIF、Switch Case

⚡ スマートサマリー

Python 条件文は、ブール式が真と評価された場合にのみ特定のコードブロックを実行することで、プログラムの流れを制御します。条件文には、if、else、elif、ネストされたif、三項演算子、構造的パターンマッチングなどがあり、簡潔で決定主導型のロジックを実現します。

  • コアコンセプト: if文は、条件が真と評価された場合にのみインデントされたブロックを実行し、意思決定の基礎を形成します。 Python.
  • 代替案の処理方法: フォールバックパスにはelseを追加し、深いネストなしに追加の条件を順番にテストするにはelifを追加します。
  • 論理エラーを回避する: 結果が1つだけ適用されるべき場合は、独立したif文ではなく、単一のif-elif-elseチェーンを使用してください。
  • 簡潔に書く Code: 値を1行で読みやすく割り当てるには、三項演算子「value_if_true if condition else value_if_false」を適用します。
  • 現代の支店運営: 長いelifチェーンを辞書マップに置き換えるping またはmatch-case文は Python 3.10 よりクリーンな複数選択が可能になりました。

Python 条件付きステートメント

条件文とは何か Python?

条件文 Python 特定のブール制約が真か偽かに応じて、異なる計算やアクションを実行します。これにより、プログラムはすべての行を順番に実行するのではなく、意思決定を行い、異なるパスをたどることができます。 Python条件文は if if文とその関連語句:else、elif、およびネストされたif。

何ですか Python If ステートメント?

その Python if文 は意思決定操作に使用されます。if 文で指定された条件が真の場合にのみ実行されるコード本体が含まれています。条件が偽の場合は、代わりにオプションの else 文が実行され、else 条件のコードが保持されます。ある条件に基づいてアクションを実行し、別の条件が真でない場合は、 を使用します。 Python if-else ステートメント。

Python if ステートメントの構文:

if expression:
    statement
else:
    statement

Python if…else フローチャート

Python if…else フローチャートの真と偽の分岐を示しています

上記のフローチャートは、if-else文を通して制御がどのように流れるかを示しています。例を見てみましょう。 Python if-else文の動作例:

Python エディタにおけるif文の例の出力

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code ライン3: 2つの変数x、y = 2、8を定義します。
  • Code ライン4: if文は条件x < yをチェックします。 この場合。
  • Code ライン5: 変数stは「xはyより小さい」に設定されます。
  • Code ライン6: print(st)という行はstの値、つまり「xはyより小さい」を出力します。

「if」条件が満たされない場合、何が起こるのか

前の例を基に、if 条件が Python 条件が満たされません。条件が偽で、かつelse分岐が存在しない場合、インデントされたコードは完全にスキップされます。

Python if条件が満たされない場合のエラー

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code ライン3: 2つの変数x、y = 8、4を定義します。
  • Code ライン4: if文は条件x < yをチェックします。 × この場合。
  • Code ライン5: 変数 st は NOT 「x は y 未満」に設定します。
  • Code ライン6: print(st) という行は、宣言されていない変数を出力しようとします。 Python 上げる 名前エラー.
⚠警告: if文の中で代入された変数を参照するのは、初心者によくある間違いです。else分岐を用意するか、if文の前に変数にデフォルト値を設定してください。

「else」条件の使い方

上記のエラーを回避するには、else条件を追加します。else条件は、ある条件に基づいて別の条件を判定する必要がある場合に使用します。いずれかの条件が偽の場合、elseブロックによって代替パスが提供されるため、プログラムは最終的に結果を生成します。

例:

Python if-else条件の例

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code ライン3: 2つの変数x、y = 8、4を定義します。
  • Code ライン4: if文は条件x < yをチェックします。 × この場合。
  • Code ライン6: プログラム制御の流れはelse条件へと移ります。
  • Code ライン7: 変数 st は「x は 大きい あなたよりも。」
  • Code ライン8: print(st)という行はstの値、つまり「xはyより大きい」を出力します。

「else」条件が機能しない場合

else条件は必ずしも期待通りの結果をもたらすとは限りません。プログラムのロジックに欠陥がある場合、誤った出力が表示されることがあります。これは通常、プログラム内で2つ以上のステートメントまたは条件を正当化する必要がある場合に発生します。例を挙げると、この概念をよりよく理解できるでしょう。

ここでは両方の変数が同じ (8, 8) ですが、プログラムの出力は 「xはyより大きい」 どちらである WRONGこれは、プログラムが最初の条件(if条件)をチェックし、それが失敗した場合に、2番目の条件(else条件)をデフォルト値として出力するためです。次のステップでは、このエラーを修正する方法を見ていきます。

Python else条件が誤った結果を生成する

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

「elif」条件の使い方

else 条件によって発生した以前のエラーを修正するには、 elif elif文。elif条件を使うことで、最初の条件が偽の場合に3つ目の可能性をテストするようにプログラムに指示できます。コード内で複数のelif条件を連結することで、4つ目、5つ目、さらにそれ以降の可能性もチェックできます。

例:

Python elif条件の例

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code ライン3: 2つの変数x、y = 8、8を定義します。
  • Code ライン4: if文は条件x < yをチェックします。 × この場合。
  • Code ライン6: プログラム制御の流れはelif条件へと移ります。elif条件はx == yであるかどうかをチェックしますが、これは真です。
  • Code ライン7: 変数 st は「x は と同じ
  • Code ライン10: プログラムの制御はif文から抜け出し(else文には到達しない)、stを出力します。出力は「xはyと同じ」となり、これは正しいです。

最小限のコードで条件文を実行する方法 Code

これで完全な if-elif-else ブロックを記述できるようになりました。 Python を使用すると、単純な条件を 1 行にまとめることができます。各分岐ごとに個別のコードを書く代わりに、 三項式(条件式).

構文:

value_if_true if condition else value_if_false

例:

Python 一行三項条件文の例

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code ライン2: 2つの変数x、y = 10、8を定義します。
  • Code ライン3: 変数 st は、x < y の場合は「x は y より小さい」に設定され、そうでない場合は「x は y 以上」になります。ここでは x > y なので、st は 2 番目の値になります。
  • Code ライン4: st の値を表示し、正しい出力結果を示します。

Python ネストされた if 文

ネストされた if 文は、1 つの if 文を別の if 文の中に配置します。これは、決定が 2 番目の条件に依存する場合に便利です。次の例は、ネストされた if 文を示しています。 Python 船を計算するping 料金は国と注文合計金額に基づいて決定されます。

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

上記のコードの2行目のコメントを解除し、3行目をコメントアウトして、コードを再度実行し、異なる国での出力がどのように変化するかを確認してください。

Switch Caseステートメント Python

switch文とは何ですか?

switch文は、変数の値をcase文で指定された値と比較する多分岐文です。長年にわたり、 Python 言語には switch 文がなかったので、開発者は同じ動作を実装しました Python 辞書 地図ping.

辞書マップを使用した例ping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

スイッチケースとマッチ(Python 3.10本、そして Later)

Since Python 3.10 (2021年10月発売) Python ネイティブ 一致ケース これは、構造的パターンマッチングと呼ばれるステートメントです。長いelif文の連鎖や、上記で示した辞書方式に代わる、簡潔で読みやすい方法を提供します。

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

アンダースコア(_)はデフォルトケースとして機能し、従来のswitch文のデフォルトと同様に、前のケースで処理されなかった値すべてに一致します。

✅ ヒント: マッチケースを使用する場合は、 Python 3.10以降。それ以前のバージョンについては、辞書マップを参照してください。ping switch文をエミュレートする標準的な方法として依然として用いられています。

if、elif、else:簡単な比較

この比較を参考に、あなたの意思決定ロジックに合った条件構造を決定してください。

ステートメント目的 いつ使用するか
if条件が真の場合にブロックを実行します単一のイエス/ノーの決定
もし…そうでなければ条件が偽の場合のフォールバックを提供します互いに排他的な2つの結果
elif追加の条件を順番にテストする3つ以上の可能性
ネストされたifif文の中に別のif文を配置する第二の条件に依存する決定
ターナリーif-else文を1行にまとめます単純な値割り当て
一致ケース値を多数のパターンと照合する多分岐(Python 3.10 +)
⚠ 注意: Python 2 は 2020 年 1 月 1 日にサポート終了となり、この記事のすべての例では を使用しています Python 3 構文。 Python 2、print は関数ではなくステートメント (例えば print st) だったので、上記のコードは変更せずに実行しても Python 2.

よくあるご質問

if文は判断を開始し、常に評価されます。elif(else-if)は、直前のifまたはelif条件が偽の場合にのみチェックされるため、1つのブロックの実行中に複数の可能性を1つのチェーンでテストできます。

はい。 以来 Python 3.10以降、match-case文は構造パターンマッチングによってネイティブなswitchスタイルの分岐機能を提供します。それ以前のバージョンでは、開発者は辞書マップを使用してswitchをエミュレートしていました。ping get() メソッドを使用してデフォルト値を指定します。

三項演算子を使用します。条件が真の場合は値、偽の場合は値、という形式です。例えば、`st = “low” if x < 10 else “high”` のように記述すると、if-elseブロック全体を使わずに、読みやすい1行で値を代入できます。

はい。AIコーディングアシスタントは、平易な言葉によるプロンプトからif-elif-elseロジックを生成、説明、デバッグできます。学習には役立ちますが、条件とインデントが意図したロジックと一致していることを確認するために、出力結果を必ず確認してください。

はい。条件付きロジックはAIの基本です。決定木、ルールベースシステム、データ前処理パイプラインはすべて、if-else分岐を利用してアクションを選択し、データをフィルタリングし、モデルがさまざまな入力をどのように処理するかを制御します。