エスケープシーケンス
文字の中には1文字では表せない文字も存在します。例えば改行です。このような特殊な文字を記述するために使われるのがエスケープシーケンスです。
Pythonではダブルクオーテーションで囲った文字列でもシングルクオーテーションで囲った文字列でもエスケープシーケンスを使用することが出来ます。使用できるエスケープシーケンスは次の通りです。
エスケープシーケンス | 意味 |
---|---|
¥¥ | 「¥」文字そのもの |
¥' | シングルクオーテーション |
¥" | ダブルクオーテーション |
¥a | ベル |
¥b | バックスペース |
¥f | 改ページ |
¥r | キャリッジリターン |
¥n | 改行 |
¥t | 水平タブ |
¥v | 垂直タブ |
¥N{name} | Unicode データベース中で名前 name を持つ文字 |
¥uxxxx | 16ビットの16進数値xxxxを持つUnicode文字 |
¥Uxxxxxxxx | 32ビットの16進数値xxxxxxxxを持つUnicode文字 |
¥ooo | 8進数oooを持つASCII文字 |
¥xhh | 16進数hhを持つASCII文字 |
¥0 | NULL |
¥+(改行) | 文字列を途中で改行する |
エスケープシーケンスは「¥」+文字の組み合わせです。例えば改行を表すエスケープシーケンスは「¥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 )