私は受け入れられた答えに完全には同意しません。はい、Pythonではインデントは非常に重要ですがif-else
、このフォーマットでは常にそのように見える必要があることを述べるのは少しやり過ぎです。
if
Pythonでは、elif
またはの本体にインデントを必要とするような凝ったことを何もしない限り、ワンライナー(複数でも)を使用できますelse
。
ここではいくつかの例を示します。
choice = 1
# if with one-liner
if choice == 1: print('This is choice 1')
# if-else with one-liners
if choice == 1: print('This is choice 1')
else: print('This is a choice other than 1')
# if-else if with one-liners
if choice == 1: print('This is choice 1')
elif choice == 2: print('This is choice 2')
# if-else if-else with one-liners
if choice == 1: print('This is choice 1')
elif choice == 2: print('This is choice 2')
else: print('This is a choice other than 1 and 2')
# Multiple simple statements on a single line have to be separated by a semicolumn (;) except for the last one on the line
if choice == 1: print('First statement'); print('Second statement'); print('Third statement')
通常、Pythonの大きな機能の1つであるコードの可読性が失われるため、1行に多くのステートメントをパックすることはお勧めしません。
上記の例は、とにも簡単に適用できることにも注意してfor
くださいwhile
。三元条件演算子を使用すると、ワンライナーif
ブロックのクレイジーなネストを行うことができます。
オペレーターの通常の外観は次のとおりです。
flag = True
print('Flag is set to %s' % ('AWESOME' if True else 'BORING'))
基本的に、それは簡単なif-else
ステートメントを作成します。より多くの分岐が必要な場合は、ワンライナーの1つに埋め込むことができます(ただし、複雑な分岐は必要ありません)。
これにより、状況が少し明確になり、何が許可され、何が許可されないかが明確になることを願っています。;)