【その書き方、エラーになります】Pythonでifを一行で書く方法

目次

まずはif else文を一行で書く方法から

if else文を一行で書く構文は

真の場合の時 if 条件式 else 偽の場合の時

の形式で記述できます。

以下にサンプルコードと解説を示します。

age = 18

otona = "18歳以上です" if age >= 18 else "18歳未満です"
print(otona)

初見で見るとちょっと不思議な記法ですが公式どおりとなります。

条件式を真ん中に置いて、真の場合と偽の場合でサンドイッチする形です。

これは三項演算子で書くパターンとなります。

elseがない、if文のだけの時は?

ではelseがない場合はどうでしょうか。

実は三項演算子ではelseなしの記述方法は用意させていません。

真の場合の時 if 条件式 else 偽の場合の時

のように、elseが無いからと言って条件式以降を省略してしまうと、

三項演算子として成り立たなくなるのでエラーとなります!

基本に戻ると

さてelseが必要ない場合どうするのかというと、単純に普段書くif文を一行にするだけになります。  

score = 80
if score >= 60: print("合格です")

つまり下記のコードの改行とインデントをなくしただけですね。

score = 80
if score >= 60:
    print("合格です")

冒頭の三項演算子のパターンに慣れていると、ハマるちょっとしたお話でした。

解決したら何よりです!