Python で複数行の文字列を記述する方法 (三重引用符と結合)

Python で複数行の文字列を記述する最適な方法を学びます。三重引用符、括弧の連結、改行結合方法、および書式設定コントロールを調べます。

エディターでこのソリューションを試してください

概要

SQL クエリ、HTML テンプレート、CLI 命令、長いデバッグ メッセージなど、アプリケーション内にテキスト ブロックを記述する場合、多くの場合、文字列値を複数行にまたがる必要があります。 Python では、複数行の文字列を定義する方法がいくつか提供されており、それぞれに異なる書式設定の影響があります。

複数行の文字列を記述する最も直接的かつ一般的な方法は、三重引用符構文 (`'''` または `"""` のいずれか) を使用することです。三重引用符で囲まれた文字列は、生の改行やインデントを含むすべての文字入力を文字通りに保持します。これにより、書式設定が高度に視覚化されますが、欠点もあります。ネストされたループまたはクラス内のコードを整列させるために使用される先頭のタブまたはスペースは、実際の文字列値の一部になってしまいます。

ソース コード内で視覚的には複数行にまたがるが、1 つの長い行にコンパイルされる (またはコード インデントの空白をキャプチャしない) 複数行の文字列を定義するには、標準の一重引用符で囲まれた文字列を括弧で囲むことができます。 Python は、隣接する文字列リテラルを括弧内で自動的に連結するため、コードがクリーンで読みやすくなります。

コードと実行の出力

このスクリプトは、三重引用符、括弧による文字列の連結、きれいなインデントを使用して複数行のテキストを記述する方法を示します。

# 1. Triple Quote Syntax (preserves all newlines and indentation)
sql_query = """SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;"""

print("--- Triple Quotes Query ---")
print(sql_query)

# 2. Parentheses Concatenation (splits code line, compiles into single line)
long_message = (
    "This is a long message that we split "
    "across multiple lines in our editor, "
    "but it compiles into a single text block."
)
print("\n--- Parentheses Concatenation ---")
print(long_message)

# 3. Joining list elements for clean line breaks
lines = [
    "First instruction line.",
    "Second instruction line.",
    "Third instruction line."
]
joined_text = "\n".join(lines)
print("\n--- Joined Lines ---")
print(joined_text)
端子出力
--- Triple Quotes Query ---
SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;

--- Parentheses Concatenation ---
This is a long message that we split across multiple lines in our editor, but it compiles into a single text block.

--- Joined Lines ---
First instruction line.
Second instruction line.
Third instruction line.

段階的な実装

  • リテラルの改行を保持する長いテキスト ブロックを記述するには、三重引用符 (''' または """) を使用します。
  • 連続する文字列をコンマなしで括弧 ( ) で囲み、出力に改行を追加せずにコードを視覚的に分割します。
  • クラスまたは関数内で三重引用符を使用して先頭のインデントをクリーンアップする場合は、textwrap.dedent() を使用します。

よくある質問

ネストされた三重引用符で囲まれた文字列から先頭のインデントを削除するにはどうすればよいですか?

組み込みの textwrap モジュールをインポートし、文字列を textwrap.dedent(text) に渡して、先頭のスペースをクリーンアップします。

一重引用符と二重三重引用符の違いは何ですか?

「」と「」」の間に機能的な違いはありません。規則を 1 つ選択し、プロジェクト全体で一貫してそれに従ってください。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。