Pythonでは、単一のステートメントを持つwhileループを一行で書くことが可能です。しかし、複雑なステートメントを一行にまとめることはできません。
例えば、次のようなコードはPythonで有効です。
while expression: print("something"); print("something else")
しかし、次のようなコードは無効です。
while expression: if expression: print "something"
これは、while
とif
の両方が複合ステートメントであるためです。
特定の例として、次のようなコードを考えてみましょう。
while n<1000: rn += n if not (n % 3 and n % 5) else 0
このコードは、n
が1000未満の間、n
が3または5で割り切れる場合にrn
にn
を加え、そうでない場合は0を加えるという操作を行います。
ただし、一般的には、このようなワンライナーはスタイルとして推奨されていません。コードの可読性を保つためには、適切なインデントと改行を用いることが重要です。