【Python】三項演算子:使いたくても避けるが正解か!?
今日は、「三項演算子」です!😄
「何それ!?おいしいの?🤔」
しょっぱなから突っ込みありがとうございます!(打ち合わせ通りですね🧡)。三項演算子とは、if~else文をコンパクトに記述する方法です。式の部分が三か所に分かれるから、「三項」演算子なのかな(と邪推します。未確認です)。
これが分かるようになれば、if~else文を一文で表現できるようになります。楽しみですね~😆?でも、実はちょっと引っかかるところがあるのです…。どんなことでしょか?
では、さっそく、「三項演算子」に進みたい、、、のですが、その前に普通のIf~else文を確認してみましょう。
if文の基本構文
基本構文(ただし、真と偽の処理が両方ある「双岐選択処理」)は、次の通りです。
具体例を出しましょう。ある少年がジェットコースターに乗れるのか、乗れないのかの瀬戸際だと思ってください。
上のif文では、無事乗れるようですが、下のif文では残念なんことに乗れなかったようですね💦。
はい、このコードで十分シンプルだと思うのですが、この処理をさらにシンプルに書いてみようというのが、今回の趣旨です。
三項演算子の基本構文
三項演算子の基本構文は、次の通りになります。
何と1行に収まった!コロン、改行、インデントがなくなりましたね~😄。真のときの処理が、条件式よりも前に置かれるのが新鮮ですな。英語っぽい。
上のコードを三項演算子で書き換えると次の通りになります。
おお、期待どおりに処理されているようですね!(「乗れません…」という結論は期待通りではないですけど😭。)
いや~、if~else文がコンパクトになりましたね!めでたし、めでたし…。しかし!そう簡単に話が終わらないのが「三項演算子」のようです。
「三項演算子」は、「参考」程度にしておく!?
実は、三項演算子は、いろんな言語で実装可能な記述法ですが、「ぜひ積極的に使いましょう!」とは一般に言われてないようですね。
なぜなら、
・読みにくい
・拡張しにくい
に尽きるようです。
If~else文を使って、コードが縦に多少長くなったところで、あまり困らないですよね。コード自体がすぐに分かりやすい方が大事でしょう。
極めて単純なIf~elseのコードを書くなら、三項演算子でもいいかもしれませんが、処理や制御が増えてくると、三項演算子ではコードが複雑になりすぎるようです(未体験ですが)。
三項演算子で不要になる「改行」「コロン」「インデント」は、コードの見通しのよさに大きく貢献していた、、、ということですね。なんでも、記述量を減らせばいいってもんじゃない。
ということで、三項演算子は、他人が書いた三項演算子のコードを読めるくらいでいいのかもしれません…。まさに、「参考」演算子ですな😅。
なお、Pythonの場合、三項演算子の記述法が他の言語に比べて、読みやすいのですが、それでも避けるのが無難でしょう…。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。
この記事が気に入ったらサポートをしてみませんか?