<一覧に戻る

基本的なエスケープシーケンス

Pythonで文字列を扱うとき、ただ文字を並べるだけではなく、特別な動作や記号を文字列の中に含めたいことがあります。
例えば「改行を入れたい」「タブを入れたい」「文字列の中でクォート(' や ")を使いたい」などです。

そのような場合に役立つのが エスケープシーケンス です。

エスケープシーケンスとは、バックスラッシュ(\)を先頭につけた特別な文字の組み合わせで、Pythonの文字列の中で特別な意味を持ちます。
プログラミングを学び始めたばかりの初心者にとっては少し不思議に感じるかもしれませんが、使いこなせるようになると文字列を自由に表現できるようになります。

ここでは、Pythonでよく使われるエスケープシーケンスと、その使い方をサンプルコードを交えてわかりやすく解説します。

代表的なエスケープシーケンス

まずは、代表的なエスケープシーケンスの一覧を表にします。

エスケープシーケンス 意味
\' シングルクォートを文字列に含める
\" ダブルクォートを文字列に含める
\ バックスラッシュそのものを文字列に含める
\n 改行を挿入する
\t タブ(水平スペース)を挿入する
\r キャリッジリターン(カーソルを行頭に戻す)

これらを覚えておくと、文字列を扱うときにとても便利です。 それぞれの使い方について、解説します。

シングルクォートとダブルクォートの使用

文字列の中で '" を使うと、文字列の区切りと混同されてしまいます。
そこで、バックスラッシュを使って「これは区切りではなく文字として扱ってね」とPythonに教えてあげます。

# シングルクォートを含む文字列
single_quote_string = 'She said, \'Hello, World!\''
print(single_quote_string)

# ダブルクォートを含む文字列
double_quote_string = "He replied, \"Nice to meet you!\""
print(double_quote_string)

実行結果は以下のようになります。

She said, 'Hello, World!'
He replied, "Nice to meet you!"

\'を使うと、シングルクォート ' を文字列に含めることができます。 \"を使うと、ダブルクォート " を文字列に含めることができます。

これにより、英語の会話文のような文字列を簡単に表現できます。

バックスラッシュを文字列に含める

バックスラッシュ\はエスケープシーケンスを表す特別な記号なので、そのままでは文字として表示できません。 バックスラッシュ自体を出力したいときは 2つ連続して\\と書きます。

# バックスラッシュを含む文字列
backslash_string = "This is a backslash: \\"
print(backslash_string)

実行すると、以下のようにバックスラッシュが表示されます。

This is a backslash: \

改行とタブの使用

文章を複数行に分けたいときや、整列させたいときには\n\tを使います。

# 改行を含む文字列
new_line_string = "Hello,\nWorld!"
print(new_line_string)

# タブを含む文字列
tab_string = "Hello,\tWorld!"
print(tab_string)

コードを実行すると、以下のように表示されます。

Hello,
World!
Hello,   World!

\n改行を意味し、「Hello,」と「World!」を別の行に分けて表示します \tタブ(空白スペース)を挿入します。表形式のデータを出力するときなどに役立ちます。

キャリッジリターンの使用

キャリッジリターン\rは少し特殊なエスケープシーケンスで、カーソルを行の先頭に戻す働きをします。

# キャリッジリターンを含む文字列
carriage_return_string = "Hello, World!\rGoodbye!"
print(carriage_return_string)

コードを実行すると、以下のように表示されます。

Goodbye!

これは、「Hello, World!」と表示した後に、\rによってカーソルが先頭に戻り、「Goodbye!」が上書きされるため、最終的に「Goodbye!」だけが表示されます。

まとめ

エスケープシーケンスは、Pythonの文字列を操作する上で非常に便利な機能です。特に、文字列内に特別な文字を含めたり、フォーマットを整えたりする際に役立ちます。

これらのエスケープシーケンスを使いこなすことで、より柔軟で表現力豊かな文字列操作が可能になります。

出力結果: