このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】三項演算子

三項演算子

 三項演算子(条件式)は、プログラムの中で簡潔に条件分岐を記述できる便利な機能です。従来のif文では複数行にわたる記述が必要な場合でも、三項演算子を使うと1行で条件に応じた値を返すことができます。ここでは、Pythonにおける三項演算子の基本構文、処理の流れ、実践例、そしてif文との比較について、表を用いて詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.三項演算子の基本構文

1.1. 基本的な書式

三項演算子は、以下の書式で記述されます。

  この構文は、「条件式」がTrueの場合に「式A」の値を返し、Falseの場合に「式B」の値を返します。

式A if 条件式 else 式B

サンプルプログラム

# 例:ユーザが入力したパスワードが正しいかどうかを判定する
password = input("Enter password: ")
result = "Access Granted" if password == "abc123" else "Access Denied"
print(result)

実行結果

Enter password:  abc123
Access Granted

解説

  • 条件式password == "abc123" は、ユーザが入力した値が "abc123" と等しいかを評価します。
  • 式A:条件がTrueの場合に返す値 "Access Granted"
  • 式B:条件がFalseの場合に返す値 "Access Denied"
  • これにより、条件に応じた結果が1行で得られ、コードが簡潔になります。

1.2. 三項演算子の処理の流れ

三項演算子は、以下のような手順で処理されます。

式A if 条件式 else 式B
  1. 条件式が評価される。
  2. 評価結果がTrueならば、式Aの値が返される。
  3. 評価結果がFalseならば、式Bの値が返される。

表:三項演算子の処理の流れ

項目内容
条件式TrueまたはFalseに評価される式
式A条件式がTrueの場合に返される値
式B条件式がFalseの場合に返される値

解説

  • この処理フローにより、条件に基づいた異なる値を、式の一部として動的に生成することが可能です。

2.三項演算子の実践例とif文との比較

2.1. 実践例:アクセス認証プログラム

 以下のプログラムは、ユーザに秘密のコードを入力させ、そのコードが正しい場合は「Access Granted」、そうでなければ「Access Denied」と表示する例です。

# ユーザから秘密のコードを入力してもらう
code = input("Secret Code: ")

# 三項演算子を使って条件に応じたメッセージを決定
message = "Access Granted" if code == "abc123" else "Access Denied"
print(message)

実行結果

Secret Code:  abc123
Access Granted

解説

  • input("Secret Code: ") により、ユーザに「Secret Code:」というプロンプトが表示され、入力値が変数 code に格納されます。
  • 条件式 code == "abc123" を評価し、Trueの場合は "Access Granted"、Falseの場合は "Access Denied" が変数 message に代入されます。
  • 最後に print(message) で結果が表示されます。

2.2. if文との比較

if文を用いた場合と三項演算子を用いた場合のコードは次のように比較できます。

if文を使った場合:

code = input("Secret Code: ")
if code == "abc123":
    print("Access Granted")
else:
    print("Access Denied")

実行結果

Secret Code:  abc123
Access Granted

三項演算子を使った場合

code = input("Secret Code: ")
print("Access Granted" if code == "abc123" else "Access Denied")

実行結果

Secret Code:  abc123
Access Granted

表:if文と三項演算子の比較

特徴if文三項演算子
記述の長さ複数行に渡るため冗長になりがち1行で簡潔に書ける。
可読性複雑な条件分岐には適している。シンプルな条件分岐に最適、複雑すぎると読みにくい。
使用例if 条件:
    print(A)
else:
    print(B)
print(A if 条件 else B)

解説

  • if文は、複雑な条件分岐や多くの文を実行する場合に向いています。
  • 三項演算子は、単一の値を返す簡単な条件分岐に非常に有用で、コードの記述量を大幅に削減できます。

まとめ

三項演算子は、Pythonで条件に応じた値を1行で簡潔に生成するための有用な構文です。

  • 基本構文は、式A if 条件式 else 式B で、条件がTrueの場合に式A、Falseの場合に式Bの値を返します。
  • 処理の流れとしては、まず条件式が評価され、次に結果に応じた式の値が返される仕組みになっています。
  • 実践例として、ユーザ入力に基づくアクセス認証プログラムなどが挙げられ、if文を使った場合と比較してコードが非常に短くなる利点があります。
  • 注意点として、条件式が複雑になると可読性が低下するため、適切な場面でシンプルな条件分岐として利用することが重要です。

 これらの知識を活用して、プログラム内で柔軟かつ効率的な条件分岐を実現し、コードの簡潔性と可読性を向上させましょう。