見出し画像

【Python】三項演算子:使いたくても避けるが正解か!?

今日は、「三項演算子」です!😄

「何それ!?おいしいの?🤔」

しょっぱなから突っ込みありがとうございます!(打ち合わせ通りですね🧡)。三項演算子とは、if~else文をコンパクトに記述する方法です。式の部分が三か所に分かれるから、「三項」演算子なのかな(と邪推します。未確認です)。

これが分かるようになれば、if~else文を一文で表現できるようになります。楽しみですね~😆?でも、実はちょっと引っかかるところがあるのです…。どんなことでしょか?

では、さっそく、「三項演算子」に進みたい、、、のですが、その前に普通のIf~else文を確認してみましょう。

if文の基本構文

基本構文(ただし、真と偽の処理が両方ある「双岐選択処理」)は、次の通りです。

if 条件式:
    条件式が真のときの処理
else:
    条件式が偽のときの処理

具体例を出しましょう。ある少年がジェットコースターに乗れるのか、乗れないのかの瀬戸際だと思ってください。

上のif文では、無事乗れるようですが、下のif文では残念なんことに乗れなかったようですね💦。

はい、このコードで十分シンプルだと思うのですが、この処理をさらにシンプルに書いてみようというのが、今回の趣旨です。

三項演算子の基本構文

三項演算子の基本構文は、次の通りになります。

条件式が真のときの処理 if 条件式 else 条件式が真のときの処理

何と1行に収まった!コロン、改行、インデントがなくなりましたね~😄。真のときの処理が、条件式よりも前に置かれるのが新鮮ですな。英語っぽい。

上のコードを三項演算子で書き換えると次の通りになります。

おお、期待どおりに処理されているようですね!(「乗れません…」という結論は期待通りではないですけど😭。)

いや~、if~else文がコンパクトになりましたね!めでたし、めでたし…。しかし!そう簡単に話が終わらないのが「三項演算子」のようです。

「三項演算子」は、「参考」程度にしておく!?

実は、三項演算子は、いろんな言語で実装可能な記述法ですが、「ぜひ積極的に使いましょう!」とは一般に言われてないようですね。

なぜなら、
・読みにくい
・拡張しにくい

に尽きるようです。

If~else文を使って、コードが縦に多少長くなったところで、あまり困らないですよね。コード自体がすぐに分かりやすい方が大事でしょう。

極めて単純なIf~elseのコードを書くなら、三項演算子でもいいかもしれませんが、処理や制御が増えてくると、三項演算子ではコードが複雑になりすぎるようです(未体験ですが)。

三項演算子で不要になる「改行」「コロン」「インデント」は、コードの見通しのよさに大きく貢献していた、、、ということですね。なんでも、記述量を減らせばいいってもんじゃない。

ということで、三項演算子は、他人が書いた三項演算子のコードを読めるくらいでいいのかもしれません…。まさに、「参考」演算子ですな😅。

なお、Pythonの場合、三項演算子の記述法が他の言語に比べて、読みやすいのですが、それでも避けるのが無難でしょう…。

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。



この記事が気に入ったらサポートをしてみませんか?