このページで解説している内容は、以下の 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
- 条件式が評価される。
- 評価結果がTrueならば、式Aの値が返される。
- 評価結果が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文を使った場合と比較してコードが非常に短くなる利点があります。
- 注意点として、条件式が複雑になると可読性が低下するため、適切な場面でシンプルな条件分岐として利用することが重要です。
これらの知識を活用して、プログラム内で柔軟かつ効率的な条件分岐を実現し、コードの簡潔性と可読性を向上させましょう。