【Python応用】複雑な条件分岐(if文)の使い方

Pythonのif文は、プログラミングにおいて非常に重要です。単純な条件分岐を超えて、複雑な条件を扱うことが必要な場合があります。

この記事では、Pythonで複雑な条件分岐をどのように使うかを紹介します。

目次

基本構文

Pythonのif文は、条件がTrueの場合に特定のブロックを実行します。

基本的な構文は次のようになります

if 条件:
    実行する処理
elif 別の条件:
    別の処理
else:
    それ以外の場合の処理

しかし、実際のプログラムでは、より複雑な条件分岐が必要な場合があります。
これには、複数の条件やネストされた条件などが含まれます。

Pythonの複雑な条件分岐(if文)の使い方

if文:複数の条件のチェック

複数の条件をチェックする場合、論理演算子(and、or、not)を使用して条件を組み合わせることができます。
例えば:

if 条件1 and 条件2:
    実行する処理

この場合、条件1と条件2が両方Trueの場合に処理が実行されます。

例文

# 仮想通貨取引所のログイン処理の例

# パスワードと二段階認証の状態を仮定
correct_password = True  # パスワードが正しい場合はTrueとします
two_factor_auth_completed = True  # 二段階認証が完了している場合はTrueとします

# ログイン処理
if correct_password and two_factor_auth_completed:
    print("取引画面にアクセスします。")
else:
    print("パスワードまたは二段階認証が正しくありません。ログインできません。")

この例では、パスワードが正しい(correct_passwordがTrue)かつ二段階認証が完了している(two_factor_auth_completedがTrue)場合に、取引画面にアクセスする処理が実行されます。それ以外の場合は、ログインに失敗した旨のメッセージが表示されます。

if文:ネストされた条件

複雑な条件分岐を実現するために、if文をネストすることもできます。
これにより、より詳細な条件をチェックすることができます。
例えば:

if 条件1:
    if 条件2:
        実行する処理
    else:
        別の処理
else:
    それ以外の場合の処理

例文

# ユーザーの年齢と国籍を入力
age = int(input("年齢を入力してください: "))
nationality = input("国籍を入力してください: ")

# 年齢が18歳以上の場合
if age >= 18:
    # 日本国籍の場合
    if nationality == "日本":
        print("成人です。飲酒可能です。")
    # 日本国籍でない場合
    else:
        print("成人ですが、国によって飲酒制限が異なります。")
# 年齢が18歳未満の場合
else:
    print("未成年です。飲酒は法律で禁止されています。")

このコードは、ユーザーからの年齢と国籍の入力に基づいて、成人か未成年かを判断しています。年齢が18歳以上の場合、国籍に応じて飲酒が可能かどうかを表示します。

まとめ

複雑な条件分岐は、Pythonプログラムで非常に役立ちます。複数の条件を組み合わせて条件をチェックし、必要に応じてネストされた条件を使用して詳細なチェックを行うことができます。しかし、条件分岐が複雑になりすぎるとコードが読みにくくなるため、できるだけシンプルな方法で条件を表現することが重要です。

目次