エスケープシーケンス

広告

文字の中には1文字では表せない文字も存在します。例えば改行です。このような特殊な文字を記述するために使われるのがエスケープシーケンスです。

Pythonではダブルクオーテーションで囲った文字列でもシングルクオーテーションで囲った文字列でもエスケープシーケンスを使用することが出来ます。使用できるエスケープシーケンスは次の通りです。

エスケープシーケンス意味
¥¥「¥」文字そのもの
¥'シングルクオーテーション
¥"ダブルクオーテーション
¥aベル
¥bバックスペース
¥f改ページ
¥rキャリッジリターン
¥n改行
¥t水平タブ
¥v垂直タブ
¥N{name}Unicode データベース中で名前 name を持つ文字
¥uxxxx16ビットの16進数値xxxxを持つUnicode文字
¥Uxxxxxxxx32ビットの16進数値xxxxxxxxを持つUnicode文字
¥ooo8進数oooを持つASCII文字
¥xhh16進数hhを持つASCII文字
¥0NULL
¥+(改行)文字列を途中で改行する

エスケープシーケンスは「¥」+文字の組み合わせです。例えば改行を表すエスケープシーケンスは「¥n」となっています。例えば次のように使います。

"Hot coffee,¥nPlease!"

上記は「Hot coffee,」+改行+「Please!」と言う文字の集まりからなる文字列です。

またダブルクオーテーションで囲った文字列の中に「"」と言う文字を含めたい場合には「¥"」と記述します。まずエスケープシーケンスを使わずに記述してみます。

"Border is "Red" color"

文字列の中にダブルクオーテーションをそのまま記述すると、どこからどこまでが文字列なのか区別が付かなくなりエラーとなってしまいます。そこでエスケープシーケンスを使って次のように記述します。

"Border is ¥"Red¥" color"

「¥"」は文字列の区切りを表すダブルクオーテーションではなく文字としての「"」として扱われます。シングルクオーテーションを表す「¥'」も同様にシングルクオーテーションで文字列を囲った場合に文字としてのシングルクオーテーションを使いたい場合に使用します。

'Border is ¥'Red¥' color'

ただPythonではシングルクオーテーションで囲った文字列もダブルクオーテーションで囲った文字列も同じ扱いですので、ダブルクオーテーションを文字列の中で使用したい場合は、文字列はシングルクオーテーションで囲う方法もあります。

"Border is 'Red' color"
'Border is "Red" color'

このような場合はエスケープシーケンスは必要ありません。

文字列を途中で改行する

長い文字列があった場合に、プログラム中で改行してしまうとエラーとなってしまいます。

"The browser displays an 
error message"

このような場合には改行の直前に「¥」を入力します。

"The browser displays an ¥
error message"

「¥」の直後に改行がある場合には、行が次の行へつながっていることを表します。よって上記は次のように1行で記述された場合と同じ扱いになります。

"The browser displays an error message"
サンプルコード

では実際に試してみます。

#coding: UTF-8

print "Hello!¥nByeBye"
print "Tomato is ¥"very¥" delicious"
print "The browser displays an ¥
error message"

上記を「test2-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

エスケープシーケンス

( Written by Tatsuo Ikura )