初心者入門エスケープシーケンスを使用する | Python入門
文字列の中で改行やタブなどの特殊な文字を記述したい場合にはエスケープシーケンスを使って記述します。ここでは Python の文字列の中でエスケープシーケンスを使用する方法について解説します。
エスケープシーケンスとは
例えば複数行にわたる文字列を定義したい場合、文字列の中に改行を表す文字を入力する必要があります。このような特殊な文字を表すのに使用するのがエスケープシーケンスです。
Windows の環境では ¥ と文字の組み合わせでエスケープシーケンスを表します(他の環境ではバックスラッシュを使用します)。 Python で用意されているエスケープシーケンスは次の通りです。
エスケープシーケンス | 意味 |
---|---|
¥newline | 文字列を途中で改行する |
¥¥ | バックスラッシュ (¥) |
¥' | 一重引用符 (') |
¥" | 二重引用符 (") |
¥a | ASCII 端末ベル (BEL) |
¥b | ASCII バックスペース (BS) |
¥f | ASCII フォームフィード (FF) |
¥n | ASCII 行送り (LF) |
¥r | ASCII 復帰 (CR) |
¥t | ASCII 水平タブ (TAB) |
¥v | ASCII 垂直タブ (VT) |
¥ooo | 8進数oooを持つASCII文字 |
¥xhh | 16進数hhを持つASCII文字 |
¥N{name} | Unicode データベース中で名前 name を持つ文字 |
¥uxxxx | 16ビットの16進数値xxxxを持つUnicode文字 |
¥Uxxxxxxxx | 32ビットの16進数値xxxxxxxxを持つUnicode文字 |
この中でも特に利用されるのが改行をあらわす ¥n 、ダブルクオーテーションを表す ¥" 、シングルクオーテーションを表す ¥' です。
エスケープシーケンスを文字列の中で使用する
それでは実際にエスケープシーケンスを文字列の中で使用してみます。文字列の中でエスケープシーケンスを使用する場合は、使用したい位置にそのまま記述してください。例えば次のように文字列リテラルを定義してみます。
"こんにちは。¥nお元気ですか?¥nそれではまた。"
この文字列の中では改行を表すエスケープシーケンスである ¥n が 2 つ含まれています。この文字列を例えば print 関数の引数に指定した場合、エスケープシーケンスの部分が改行に置き換わって出力されます。
それでは対話モードで Python を起動し、次のように実行してみます。
print("こんにちは。¥nお元気ですか?¥nそれではまた。")
文字列の中で記述された ¥n が改行に置き換わって画面に出力されています。結果として ¥n がある位置で文字列が改行されて複数行の文字列として画面に出力されています。
-- --
次に文字列の中でダブルクオーテーション(")やシングルクオーテーション(')を文字として使用する場合を試してみます。「文字列の中でダブルクオーテーションやシングルクオーテーションを使う」で解説した方法でも記述することができますが、エスケープシーケンスを使用して次のように記述することができます。
'Tom¥'s toy'
エスケープシーケンスを使えばシングルクオーテーションで囲った文字列の中でシングルクオーテーションを文字として記述することもできます。
それでは対話モードで Python を起動し、次のように実行してみます。
print('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"
-- --
簡単なサンプルを作って試してみます。テキストエディタで次のように記述したあと、 sample2-1.py という名前で保存します。
print("I will go to the amusement park with ¥
my children tomorrow")
その後、次のように実行してください。
python sample2-1.py
文字列を途中で改行しながら入力することができました。
-- --