[python]if文を1行で書く3項演算子

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

elseなしのif文は
if 1==1:
	print("true")
のように書きますがこれを1行で書くと
if 1==1:print("true") #true
となります。
ただし、関数的に使うとエラーになります。
print(if 1==1:"true") #エラー
次にelseありのif文は
if 3==0:
	print("true")
else:
	print("false")
のように書きますがこれを1行で書くと
print("true") if 3==0 else print("false") #false
となります。
これを3項演算子といいます。
順番に注意してください。
3項演算子はelse文を省略できません。
また、関数的に使って、
print("true" if 3==0 else "false") #false
ともできます。
使い方は
真のとき if 条件式 else 偽のとき
となります。
3項演算子では何も値を返さないpassを使うことはできません。
print("true" if 3==0 else pass) #エラー

elifがある場合に3項演算子で書く

elifありのif文は
n=3
if n<0:
	print("minus")
elif 0<n:
	print("plus")
else:
	print("zero")
のように書きますがこれを1行で書くと、3項演算子を2重に使って
n=3;print("minus") if n < 0 else print("plus") if n > 0 else print("zero")
となります。
また、関数的に使って
n=3;print("minus" if n < 0 else "plus" if n > 0 else "zero")
とできます。

ページ情報
タイトル
[python]if文を1行で書く3項演算子
URL
https://www.nomuramath.com/an4x5biy/
SNSボタン