エスケープシーケンスを使用する

文字列の中で改行やタブなどの特殊な文字を記述したい場合にはエスケープシーケンスを使って記述します。ここでは Python の文字列の中でエスケープシーケンスを使用する方法について解説します。

(Last modified: )

エスケープシーケンスとは

例えば複数行にわたる文字列を定義したい場合、文字列の中に改行を表す文字を入力する必要があります。このような特殊な文字を表すのに使用するのがエスケープシーケンスです。

\ と文字の組み合わせでエスケープシーケンスを表します( Windows 環境では円記号を使用します)。 Python で用意されているエスケープシーケンスは次の通りです。

エスケープシーケンス意味
\newline文字列を途中で改行する
\\バックスラッシュ (\)
\'一重引用符 (')
\"二重引用符 (")
\aASCII 端末ベル (BEL)
\bASCII バックスペース (BS)
\fASCII フォームフィード (FF)
\nASCII 行送り (LF)
\rASCII 復帰 (CR)
\tASCII 水平タブ (TAB)
\vASCII 垂直タブ (VT)
\ooo8進数oooを持つASCII文字
\xhh16進数hhを持つASCII文字
\N{name}Unicode データベース中で名前 name を持つ文字
\uxxxx16ビットの16進数値xxxxを持つUnicode文字
\Uxxxxxxxx32ビットの16進数値xxxxxxxxを持つUnicode文字

この中でも特に利用されるのが改行をあらわす \n 、ダブルクオーテーションを表す \" 、シングルクオーテーションを表す \' です。

エスケープシーケンスを文字列の中で使用する

それでは実際にエスケープシーケンスを文字列の中で使用してみます。文字列の中でエスケープシーケンスを使用する場合は、使用したい位置にそのまま記述してください。例えば次のように文字列リテラルを定義してみます。

"こんにちは。\nお元気ですか?\nそれではまた。"

この文字列の中では改行を表すエスケープシーケンスである \n が 2 つ含まれています。この文字列を例えば print 関数の引数に指定した場合、エスケープシーケンスの部分が改行に置き換わって出力されます。

サンプルコード

次のサンプルを見てください。

print("こんにちは。\nお元気ですか?\nそれではまた。")

>> こんにちは。
>> お元気ですか?
>> それではまた。

文字列の中で記述された \n が改行に置き換わって画面に出力されています。結果として \n がある位置で文字列が改行されて複数行の文字列として画面に出力されています。

-- --

次に文字列の中でダブルクオーテーション(")やシングルクオーテーション(')を文字として使用する場合を試してみます。「文字列の中でダブルクオーテーションやシングルクオーテーションを使う」で解説した方法でも記述することができますが、エスケープシーケンスを使用して次のように記述することができます。

'Tom\'s toy'

エスケープシーケンスを使えばシングルクオーテーションで囲った文字列の中でシングルクオーテーションを文字として記述することもできます。

サンプルコード

次のサンプルを見てください。

print('Tom\'s toy')

>> Tom's toy

文字列の中で記述された \' が文字としての ' に置き換わって画面に出力されています。

長い文字列を途中で改行して入力する

Python では改行文字が文の区切り文字として使用されているため、長い文字列を定義する場合に途中で改行して入力することはできません。例えば次のように文字列を途中で改行することはできません。

"I will go to the amusement park with
my children tomorrow"

長い文字列を途中で改行したい場合には、改行の前に \ を記述してください。 \ が記述された後に改行が続いている場合、文字列がまだ終わっておらず次の行に書かれている部分とつながっているものとして処理されます。例えば次のように記述します。

"I will go to the amusement park with \
my children tomorrow"

これは次のように 1 行で文字列を記述したのと同じです。

"I will go to the amusement park with my children tomorrow"

サンプルコード

次のサンプルを見てください。

print("I will go to the amusement park with \
my children tomorrow")

>> I will go to the amusement park with my children tomorrow

文字列を途中で改行しながら入力することができました。

-- --

Python の文字列の中でエスケープシーケンスを使用する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。