Pythonで1行に複数のステートメントを記述する方法
Pythonで1行に複数のステートメントを書くには?
Pythonでは、同じインデントレベルで揃えられたブロック内の複数のステートメントが、ひとつの複合ステートメント(compound statement)を構成します。通常、各ステートメントはエディタ上で別々の行に記述するのが基本ですが、セミコロン(;)で区切ることで、複数のステートメントを1行にまとめて記述することも可能です。
通常の書き方:各行に1つのステートメント
まず、3つのステートメントをそれぞれ別の行に記述した例を見てみましょう。
a = 10 b = 20 c = a * b print(c)
セミコロンを使って1行にまとめる
これらのステートメントは、間にセミコロンを挟むことで、次のように1行で記述できます。
a = 10; b = 20; c = a * b; print(c)
この場合も実行結果は同じで、200 が出力されます。
ifやfor文などのブロックを1行で書く
インデントが深くなる新しいブロックは、通常、if、else、while、for、tryなどのステートメントに続くコロン(:)の後から始まります。しかし、上記と同じセミコロンの構文を使えば、ブロック内のステートメントも1行にまとめることができます。
以下は、forループの中に2つのステートメントを含むシンプルな例です。
for i in range(5):
print("Hello")
print("i =", i)このブロックは、次のように1行で書き直すこともできます。
for i in range(5): print("Hello"); print("i =", i)注意点:ネストしたブロックでは使えない
ただし、この記法には重要な制限があります。ブロックの中にさらにネストされた(入れ子の)ブロックが存在する場合は、1行へのまとめ方は許されません。例えば、次のようなコードは構文エラーになります。
# これはエラーになる for i in range(5): if i % 2 == 0: print(i)
ネストしたブロックが必要な場合は、従来どおり改行とインデントを使って記述しましょう。
補足:可読性のための推奨事項
Pythonの公式コーディング規約「PEP 8」では、セミコロンによる複数ステートメントの1行記述は推奨されていません。デバッグやコードレビューのしやすさ、可読性の観点から、特別な理由がない限りは1行に1つのステートメントを記述するスタイルがベストプラクティスとされています。
-
Pythonでprint()を改行せずに同じ行へ出力する方法【end引数の使い方】
Pythonのprint()関数は、デフォルトでは呼び出すたびに自動的に改行されます。これは、print()がデフォルトで末尾に改行文字(\n)を出力し、カーソル(ポインタ)を次の行へ移動させるためです。例for i in range(5): print(i)出力結果0 1 2 3 4end引数を使って同じ行に出力するprint()関数にはendという追加の引数があり、これを指定することで出力後もカーソルを同じ行に留めることができます。end引数には、スペースや記号などの任意の文字列をダブルクォート(またはシングルクォート)で囲んで指定でき、同じ行に出力される要素同士の区切りとして使わ
-
【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)
はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい