三項演算子でif文を1行で書く

投稿者: | 2022-02-12

参考HP:note.nkmk.me

目次

通常のif文

if 条件:
  return 値A(or 評価される式A)
else:
  return 値B(or 評価される式B)

三項演算子を使ったif文

値A if 条件式 else 値B

評価される式A if 条件式 else 評価される式B

①条件によって、値を切り替える場合

a = 1
result = 'even' if a % 2 == 0 else 'odd'
print(result)
# odd

②条件によって、処理を切り替える場合

# aが偶数であれば、2aを返す、奇数であれば3a を返す
a = 1
result = a * 2 if a % 2 == 0 else a * 3

③値を返さない式(Noneを返す式)でもよい

print('even') if a % 2 else print('odd')

④複数の条件式を論理演算子(and, or)で連結も可能

a = -2
result = 'nagative and even' if a < 0 and a % 2 == 0 else 'positive or odd'
print(result)
# nagative and even