Python

【Python】三項演算子を使ってif文を1行で記述する

この記事では、Pythonの三項演算子の使い方を解説します。三項演算子を使うことで、簡単な条件分岐を1行で表現することができ、とても便利です。

三項演算子の使い方

三項演算子は、ifelseを使って以下のように記述します。

変数 = (条件式がTrueの時に代入される値) if (条件式) else (条件式がFlaseの時に代入される値)

サンプル

以下のコードは、input関数で受け取った整数が奇数か偶数かを判定し、出力するコードです。

num = int(input('int: '))

if num % 2 == 0:
    text = '偶数'
else:
    text = '奇数'

print(text)

このコードを三項演算子を使って書き直すと、以下のようになります。

num = int(input('int: '))

# 三項演算子
text = '偶数' if num % 2 == 0 else '奇数'
print(text)

このように、三項演算子を使うことでifの部分を1行で表現することができました❗️

代入しない三項演算子

三項演算子は結果を変数に代入しなくても問題ありません。以下のコードでは、値を返さずにそのままprint()関数で出力しています。

num = int(input('int: '))

print('偶数') if num % 2 == 0 else print('奇数')

実行結果

int: 312
偶数

さらに複雑な三項演算子

三項演算子は、if-elif-elseを1行で表現することができます。

(条件式1がTrueの時に評価される式) if (条件式1) else (条件式1がFalseかつ条件式2がTrueの時に評価される式) if (条件式2) else (条件式1、条件式2がFalseの時に評価される式)

サンプル

以下のコードでは、numの値が1か2かそれ以外かを判定しています。

num = 1

s = 'numは1' if num == 1 else 'numは2' if num == 2 else 'numは1,2以外'
print(s)

実行結果

numは1       # num = 1
numは2       # num = 2
numは1,2以外  # num = 3

後ろにif 条件式 elseをつなげていくことで、いくつでも条件を増やせますが、直感的にわかりづらいので注意しましょう!

デフォルト値を渡したいだけなら

変数に値が無い場合にデフォルト値を渡したいだけなら論理演算子のorを使うことでもっと簡単に実装できる。

val = None

val = val or 1
print(val)

実行結果

1

まとめ

この記事では、Pythonの三項演算子の使い方について解説しました。

三項演算子を使うことでif文を1行で記述することができます。単純なif文は、三項演算子を使って書いた方がすっきりしたコードにすることができます。

また、1行で記述しなければいけない場合(ラムダ式とか)に使用しましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』