プログラミングをするとき、できる限り短いコードで簡潔に書けると美しく見えるものです。
今回は、Pythonの三項演算子について紹介していきます。
通常であれば、Pythonの条件式は以下のように書きます。
単純な日曜日を判定する、という構文です。
では、次にこれの三項演算子で書いたパターンを見ていきましょう。
(ifがTrueだった場合) if 条件式 else (ifがFalseだった場合)
という形になります。
これが三項演算子の基本形です。
実際に役立つシーンの1つがlambda(無名関数)を利用したときです。
実際に書き方を見てみましょう。
このように、lambdaとして用意してあげれば、この三項演算子の再利用が捗ります。
別の役立つシーンに内包表記があります。
内包表記自体は以下のように書きます。
これを、80点以上に限定して表示してみましょう。
このように、内包表記の内部に使うことで大幅なコード省略につながります。
他にも短くコードを書くテクニックがあるので紹介していきます。
文字列の連結をする際、+
や変数展開を使うことが多いです。あまり知られていませんが、以下のようにも書けます。
なお、以下のような書き方はできないため、あまり利用シーンはありません。
これが役立つシーンとして、URLの変数化があります。\
で改行して連結することで、一行の長さを定めているコード規約を回避できます。
なお、()
を使うと、\
も必要なくなります。
if
文の条件式でも()
は使えるので、長めの条件式を使う際に有効です。
整数を1だけ上げたい、逆に1だけ下げたい、というときに使うのがインクリメントとデクリメントです。
通常は以下のように書きます。
これをショートハンドで書くと、以下のように書けます。
※ショートハンドと言いつつ、実はこちらのほうが1文字多い。
最後に、and
とor
を使った条件を使った変数の代入方法について紹介します。
条件を使った変数代入は通常以下のようになります。
これを短く書けます。
このように、or
演算子を使うと、前者のa
がFalse
のときに後者が評価されます。逆にand
を使うと、前者がFalse
のときに前者が評価されます。
これを使うと、たとえばデータベースインスタンスがあればインスタンスを返し、なければNone
を返す、といった実装ができます。
稀に使う機会があるので覚えておいて損はありません。
コードを短く書くことよりも、読みやすいことのほうが正義です。
誰も理解できないコードを書いて、理解に時間を要する状態にしてはいけません。
しかしながら、短いコードが有効なシチュエーションで正しく使うことができれば、逆に可読性を上げることが可能です。適切な使い方を理解して、より美しいコードを書いていきましょう。