このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】複数行のテキストを扱いたい場合

複数行のテキストを扱いたい場合

 Pythonでは、長い1行のテキストだけでなく、複数行にわたるテキストを自然な形で記述するための方法が用意されています。特に、三重クォート文字列(三連クォート文字列)を使うことで、複数行の文章をそのまま文字列リテラルとして扱え、改行も含めた状態で出力することが可能です。ここでは、三重クォート文字列の基本的な使い方と、行末にエスケープシーケンスを利用して改行を無効にする方法について、順を追って解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.三重クォート文字列の基本

 Pythonで複数行のテキストを記述する場合、3個のシングルクォート (''') もしくは3個のダブルクォート (""") で文字列リテラルを囲むだけで、その中に書いた改行や空白がすべて文字列に含まれます。たとえば、以下の例は、ある詩の一節を複数行で記述した例です。

print("""
春の風がそよぐ
花びら舞い散る
新たな始まり
""")

 このコードを実行すると、出力結果は次のようになります。(最初と最後に余計な空行が入る場合があります。)

← 空行
春の風がそよぐ
花びら舞い散る
新たな始まり
← 空行

ポイント

  • 三重クォート内で記述された改行は、そのまま文字列の中に残るため、複数行のテキストを自然に扱えます。

2.行末の改行を無効にする方法

 場合によっては、コード上で複数行に分けたいが、実際の出力には改行を入れたくないという状況もあります。その場合は、各行の末尾にバックスラッシュ \(または一部環境では円記号 ¥)を入れてエスケープすることで、改行を無効にできます。以下はその例です。

print("""\
春の風がそよぐ\
花びら舞い散る\
新たな始まり\
""")

 このコードでは、各行末に \ を入れることで、行末の改行が無効化され、出力は1行の連続した文字列として表示されます。

実行結果は、

春の風がそよぐ花びら舞い散る新たな始まり

となります。

3.複数行テキスト記述のまとめ

以下の表に、複数行のテキストを扱う際の主要ポイントをまとめます。

項目説明
三重クォート文字列3個のシングルクォート(''')またはダブルクォート(""")で囲むことで、改行も含めた複数行の文字列を作成できる。python print("""\n詩の一節...\n""")
改行が文字列に含まれる三重クォート内部の改行は、そのまま文字列の一部として扱われる。上記の例のように、行ごとの改行がそのまま出力される。
行末の改行無効化(エスケープシーケンス)各行の末尾にバックスラッシュ \ を入れると、改行が無効化され、連続した文字列として連結できる。python print("""\\\n一行に連結...\n""")

まとめ

 ここでは、Pythonで複数行のテキストを扱う方法として、三重クォート文字列の基本的な使い方と、行末にエスケープシーケンスを用いて改行を抑制する方法を学びました。

  • 三重クォート文字列を使用すると、複数行に渡る文章をそのまま自然な形で文字列として記述でき、改行も出力に反映されます。
  • エスケープシーケンスを利用することで、不要な改行を抑制し、1行に連結して出力することが可能です。

 次のコンテンツでは、パスの文字列リテラルについて詳しく解説していきます。ぜひ、実際にコードを書きながら、複数行テキストの扱い方を試してみてください。