はじめに
こんにちは。風助です。
今回は三項演算子について書いていきます。
三項演算子とは、if文を1行で書くためのものです。
言葉を重ねるより実際にコードを見た方が早いと思うので、さっそく見ていきましょう。
三項演算子の使い方
では三項演算子について書いていきます。
# 三項演算子
a = 5
dayOfWeek = 'sunday' if a % 7 == 6 else 'weekday'
print(dayOfWeek)
dayOfWeek2 = 'sunday' if a % 7 == 6 else 'saturday' if a % 7 == 5 else 'weekday'
print(dayOfWeek2)
以下は実行結果です。
weekday
saturday
三項演算子は1行でif-elif-elseを表すことができます。もちろんelifを何度も重ねることもできます。
どういう構造なのか説明していきます。
条件式が真のとき if 条件式 else 条件式が偽のとき
上のようにまずは条件式が真のときに行いたい処理を書きます。
そしてifの後に真偽を判別するための式を書きます。
最後に条件式が偽のときに行いたい処理を書きます。
基本的にはこれだけです。
これだけでif-elseを1行で表せます。
elifの表現はdayOfWeek2のように「条件式が偽のとき」のところに三項演算子をもう一回入れます。
こうしてどんどん書き足していくことで、いくつもelifを追加できます。
ただelifを表現するとどんどん分かり辛くなっていきます。
機械が処理するなら問題ないのでしょうが、あとあと私たちが見直した時に頭を抱えてしまいます。
どうしても三項演算子でelifを表現しなくてはいけないとき以外は普通のif文を使った方がいいと思います。
どんな時に使う?
どんどん見づらくなってしまう三項演算子はどんな時に使うのか紹介します。
よく使われるのは「リスト内包表記」と「lambda式」です。
それぞれの解説は別の投稿で行います。
おわりに
今回は三項演算子について書いていきました。
実のところ、3つの項から1つの解を導くことができればそれはすべて三項演算子と定義できてしまいます。
なので「スライシング」なども三項演算子にあたります。
演算子について問い詰めていくのは私たち初心者ではなくベテランの方たちだと思っているのであまり気にしないで行きましょう。
皆さんの参考になれば幸いです。
コメント
[…] […]
obviously like your web-site however you have to take a look at the spelling on several of your posts. Several of them are rife with spelling problems and I in finding it very bothersome to tell the truth then again I?¦ll certainly come back again.