どーもTakeです。
この記事では、Pythonの「三項演算子」について簡単に解説します。
「三項演算子」は少し難しい書き方です。初心者にはあまりおすすめはしませんが、
この書き方に慣れれば、1ランクUPしたプログラマーになると思います。
この記事では「三項演算子」の基本的な書き方と「elif」文で書く場合の複雑な「三項演算子」について
具体的なソースコードを用いてわかりやすく説明しますので、ぜひご覧いただければと思います。
- 「三項演算子」の基本的な書き方
- 「三項演算子」で elif文の書き方
「三項演算子」の基本的な書き方
基本的な書き方は下記になります。
1 |
<条件が真の場合の値> if <条件式> else <条件が偽の場合の値> |
条件が真の(条件を満たす)場合の値をはじめに記述し、その後に条件式を書きます。
一風変わった書き方ですが、こう書くことでよりシンプルに書くことができます。
これに比べ Python の普通の条件式の下記になります。
1 2 3 4 |
if <条件式>: <条件が真の場合の値> else: <条件が偽の場合の値> |
Python で条件式のソースを書くと、少なからず2行~4行以上書く必要がありますが、
「三項演算子」では一行にまとめるために簡単に書く文法のことです。
具体的なソースコードは下記になります。
1 2 3 4 5 6 |
num = 1 word = 'one' if num == 1 else 'zero' print(word) # 実行結果 one |
これは変数 num が 1 の場合、変数 word に one を代入し
変数 num が 1 以外の場合、変数 word に zero を代入します。
今回は変数 num が 1 であるため、変数 word に one を代入され、
最終行で print メソッドから「one」が表示されます。
「三項演算子」で elif 文の書き方
「三項演算子」の elif 文の書き方は下記になります。
1 |
<条件が真の場合の値> if <条件式> else <条件が偽の場合の値> if <条件式> else <条件が偽の場合の値> |
これはかなりややこしい書き方で正直可読性が低いため、
複雑な条件式は「三項演算子」には向いておりません。
具体的なソースコードは下記になります。
1 2 3 4 5 6 |
num = 3 word = 'one' if num == 1 else 'two' if num == 2 else 'three' print(word) # 実行結果 three |
これはまず「word = 'one'」という値に対し、「if num == 1 else 'two'」という条件式があり、
「(word =) 'two'」という値に対し、「if num == 2 else 'three'」という条件式がネストしているということです。
これはぱっとイメージがわかりにくい人は下記をご確認いただければと思います。
下記は Python の普通の条件式になります。
1 2 3 4 5 6 7 8 9 10 11 |
num = 3 if num == 1: word = 'one' elif num == 2: word = 'two' else: 'three' print(word) # 実行結果 three |
最後に
いかがでしたでしょうか?
この記事では、Pythonの「三項演算子」について解説しました。
私の感想ですが「三項演算子」は書けなくても何ら問題ありません。
システム開発の業務で「三項演算子」で書かれるソースコードは見たことがありません
(おそらく開発者にわかりやすくするため、可読性向上のため)。
ですがこの書き方に慣れれば、1ランクUPしたプログラマーになると思います。
ではでは。