71630


下記のようなPythonのコードがあります。  
Pythonのポリシーに反するものだとは思いますが、他の言語からPythonを呼び出すにあたって、どうしても1行で全てを収めたいという場合があり、1行にまとめて実行したいと考えています。

[code]

    testInt = 2
    if testInt == 2:
        print("testInt is 2")
    else:
        print("testInt is not 2")
    print("finish!")
    
[/code]

そこで、試しに以下のように書いてみたのですが、`SyntaxError: invalid syntax`となって実行できません。

[code]

    testInt = 2;if testInt == 2:print("testInt is 2");else:print("testInt is not 2");print("finish!");
    
[/code]

Pythonでは通常、`";"(セミコロン)`がなくても、改行扱いになりますが、セミコロンをつけることによっても改行扱いにできます。そのため、以下のように書いてもエラーにはなりません。

[code]

    testInt = 2;print(testInt);
    
[/code]

if文やfor文以外の文に関しては、セミコロンを使用するだけでうまく行くのですが、ifとforなどが入ってくると、1行にまとめられないため、何か良い方法があったら教えてください。


CC BY-SA 4.0
2020-10-30T23:59:08.113
71629
2020-10-31T00:09:23.190
34471
question
python
if文を含むPythonの表記を1行にまとめたい


[三項演算子のように](https://note.nkmk.me/python-if-conditional-
expressions/)記述することでワンライナーを実現できます。

[code]

    testInt = 2; print("testInt is 2") if testInt == 2 else print("testInt is not 2"); print("finish!")
    
[/code]


CC BY-SA 4.0
2020-10-31T00:09:23.190
71630
2020-10-31T00:09:23.190
9820
71629
answer