エスケープシーケンス
文字の中には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 )

 
				 PythonWeb
PythonWeb