[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ボタン