投稿履歴
- 【A5M2】テーブルにNULL値を入力する方法
- 【Linux】標準出力と標準エラー出力の違い
- DRAMとSRAMの違い・覚え方を徹底解説!
- 【サクラエディタ】スペースとタブを置換する方法
- 【Excel】VBAの起動方法(開発タブが表示されない場合)
- 今日から使える!Gitコミットメッセージの書き方と型
- 【Excel】区切り指定でCSVを貼り付ける方法
- 【Linux】テキストファイルの重複行を削除する方法
- 【サクラエディタ】重複行を削除する方法
- Excelのプルダウンリストをショートカットで操作・管理する
- 【サクラエディタ】タブ表示の設定と使いこなしガイド
- 【サクラエディタ】矩形選択(ボックス選択)を完全ガイド
- 【サクラエディタ】Grep機能の使い方を初心者にもわかりやすく解説!
- TCPとUDPの違いと覚え方:信頼性 vs スピードを徹底解説
- Pythonの仮想環境を終了(deactivate)する方法
- 【Linux】zipファイルの圧縮方法(zipコマンド)
- LinuxでZIPファイルを解凍する方法【unzipコマンド】
- 暗号化アルゴリズムの種類:代表的なアルゴリズムを紹介!
- 【Oracle】SELECT結果を同一テーブルへINSERTする
- 【Oracle】ROWNUMとROW_NUMBERの違いと使い分け
Pythonユーザにお勧めの本
Pythonの三項演算子を使うと、if文を1行で実装することができます。
本記事では、三項演算子を使ったif文の書き方を解説します。
三項演算子の使い方
Pythonで条件分岐を記述する際、一般的に使われるのがif文です。これは直感的で分かりやすく、よく使われる基本の文法です。
x = 10if x > 5: y = "big"else: y = "small"上記のような記述でも、たった変数yに値を代入するけで、記述4行を要しています。簡単な条件なら、もっと簡潔に書ける方法があるのでは?と思うかもしれません。
そこで登場するのが「三項演算子」です。Pythonでは、たった1行で条件分岐を実現できます!
x = 10y = "big" if x > 5 else "small"これだけで、if-elseの分岐を表現できました。コードがより簡潔になり、読みやすさも高まります。
三項演算子の構文
三項演算子の文法フォーマットは、比較的に簡単で視覚的にも分かりやすいです。
基本構文は以下の通りです。
条件がTrueのときの値 if 条件 else 条件がFalseのときの値これによって、通常のif文より記述も簡略になります。三項演算子の実装例を以下に示します。
age = 18status = "adult" if age >= 18 else "minor"print(status) # 出力: adultこの例では、ageが18歳以上であるかどうかを判定し、Trueの場合はadult、Falseの場合はminorを割り当てています。
三項演算子の活用例
三項演算子で奇数・偶数を判定する
以下は通常の実装で奇数偶数を判定するプログラムです。
num = 5if num % 2 == 0: result = "偶数"else : result = "奇数"print(result)上記プログラムの実行結果は以下の通りです。
$ python example1.py奇数三項演算子に変換すると以下のようになり、1行で記載できます。
num = 6result = "偶数" if num % 2 == 0 else "奇数"print(result)上記プログラムの実行結果は以下の通りです。
$ python example2.py偶数三項演算子でNoneチェックを行う
以下のように変数の中身がNoneであるかのチェックにも活用できます。
name = Nonegreeting = name if name is not None else "ゲスト"print(greeting)上記プログラムの実行結果は以下の通りです。
$ python example3.pyゲストリスト内包表記で三項演算子を使う
以下のように、三項演算子は内包表記と組み合わせて記述することもできます。
numbers = [1, 2, 3, 4, 5]result = ["偶数" if num % 2 == 0 else "奇数" for num in numbers]print(result)上記プログラムの実行結果は以下の通りです。
$ python example4.py['奇数', '偶数', '奇数', '偶数', '奇数']ネストされた三項演算子は可読性が低下
複雑な条件分岐も三項演算子を使って書くことができます。例えば、入れ子にして複数段階の条件を表することも可能です。 三項演算子は入れ子にすることもできますが、可読性が低下する可能性があり、ネストされた三項演算子の実装はお勧めしません。
以下の例では、xがyより大きければxが大きい、yと同じならば同じ、それ以外はyが大きいと、入れ子の三項演算子を使って表現しています。
x = 10y = 20result = "xが大きい" if x > y else "同じ" if x == y else "yが大きい"print(result)上記プログラムの実行結果は以下の通りです。
$ python example5.pyyが大きい以下の例では、xが10より大きければbig、5より大きければmedium、それ以外はsmallと、入れ子の三項演算子を使って表現しています。
x = 7result = "big" if x > 10 else ("medium" if x > 5 else "small")print(result)上記プログラムの実行結果は以下の通りです。
$ python example6.pymediumこうして入れ子を重ねると、読み手にとって分かりづらいコードになりがちです。そのため、複雑な分岐を必要とする場合は、普通のif-elif-else文を使った方がよい場合も多いでしょう。
三項演算子まとめ
三項演算子の特徴をまとめると以下の通りです。
シンプルな実装: Pythonの三項演算子を使うと、if条件に基づく値設定を簡潔に実装することができます。可読性: 短い条件やシンプルなロジックには適していますが、複雑なロジックでは可読性が低下します。この場合、通常のif-else文を使用した方が良いでしょう。複雑な条件: 複雑な条件を入れると混乱しやすくなるため、コメントを追加するか、通常のif-elif-else文を使用することを検討してください。
簡単なif-elseをさらに簡潔に1行で書きたい場合は、Pythonの三項演算子を活用しましょう。 特にシンプルなロジックを書く場面では重宝します。 しかし、過度なネストや複雑な分岐になりそうな場合は、読者にとって解読性が落ちるため、適切なバランス感覚を持って使うことが大切です。
Pythonユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!