コードを区切るのは改行

投稿日: 2024年3月2日

Pythonにおける改行は、コードの構造を明確にし、読みやすくするために非常に重要な役割を果たします。

ここでは、改行の正しい使用方法と、避けるべき一般的な間違い(NGパターン)について詳しく説明します。

Pythonは好きに改行できないんですか?

Pythonでは改行が特定のルールに従って使用されるため、完全に「好き勝手」に改行することはできないのです。

Pythonにおける改行は、コードを構造化し、可読性を高めるための重要な要素です。改行の扱い方は、プログラムの構造を明確にするためだけでなく、Pythonの文法規則においても重要な役割を果たします。

改行の基本

Pythonでは、ほとんどの場合、改行は新しい文(ステートメント)の開始を意味します。例えば、次のように2つのprint文を改行して書くことができます。

print("Hello, World!")
print("Python is fun.")

この例では、改行によって2つのprint文が別々のステートメントとして認識されます。

複数行にまたがるステートメント

Pythonでは、一つのステートメントを複数行にわたって記述する場合があります。これを行うためには、バックスラッシュ(\)を使用して行の継続を示すか、括弧(()[]{})を使用してステートメントを囲みます。
以下はバックスラッシュによる行の継続です。

total = 1 + \
        2 + \
        3

この例では、バックスラッシュを使用して、一つの式を3行にわたって記述しています。
次に括弧による行の継続です。

numbers = [
    1,
    2,
    3,
]

次に空の行ではどうなるかというと、
Pythonでは、空行(行の内容が何もない行)は、コードの読みやすさを向上させるために使用されます。空行は、Pythonの実行には影響しませんが、関数やクラスの定義など、コードのセクション間に挿入することで、コードを視覚的に区切ることができます。

基本ルール

  1. 新しいステートメントの開始:Pythonでは通常、改行は新しいステートメントの開始を意味します。
  2. 行の継続:一つのステートメントが長くて一行に収まらない場合、バックスラッシュ(/)を使用するか、括弧(()[]{})で囲んで行を継続することができます。

もし、改行を間違ったらどうなるんですか?

エラーになってコードがそれ以上読まなくなるね。
次は誤ってしまいそうなコードを説明するね。

Pythonにおいて、改行を誤って使用することで発生する可能性のあるエラーはいくつかあります。

不適切な行の継続

Pythonでは、一行に収まらない長いステートメントを複数行にわたって記述する場合、行の継続が適切に行われないとエラーになります。

total = 1 +
        2 +
        3

このコードはSyntaxErrorを引き起こします。正しくは、行の継続を示すためにバックスラッシュ(/)を使用するか、括弧で囲む必要があります。上記のコードを修正すると以下になります。

total = 1 + \
        2 + \
        3

次は不要な改行の使用例になります。
文の中で不要な改行を入れると、Pythonはその行が終わったと解釈し、エラーが発生します。

print("Hello,
World!")

このコードもSyntaxErrorを引き起こします。文字列リテラルの中で改行を使用する場合は、三重引用符("""または''')を使う必要があります。上記のコードを修正すると以下になります。

print("""Hello,
World!""")

これらの例は、Pythonで改行を扱う際に一般的に遭遇するエラーのいくつかです。エラーメッセージを注意深く読み、適切な改行とインデントの使用を心がけることで、これらの一般的な問題を回避できます。

例外と注意点

  • 文字列リテラル内:シングルクォート(')やダブルクォート(")で囲まれた文字列リテラル内では、改行を直接使用することはできません。複数行にわたる文字列を扱いたい場合は、三重クォート('''または""")を使用します。
  • 括弧内:括弧(()[]{})で囲まれた式内では、改行を自由に使用できます。これは、長いリストや辞書、関数の引数などをより読みやすくするために便利です。

記事