0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】エスケープシーケンスとraw文字列リテラルの基礎まとめ

Last updated at Posted at 2025-04-29

Pythonで文字列を扱うとき、バックスラッシュ(\)を使った特殊な記号を見かけたことはありませんか?
これは「エスケープシーケンス」と呼ばれる仕組みで、Pythonでは文字列操作に欠かせない知識です。

この記事では、エスケープシーケンスの基本と、バックスラッシュを特別扱いさせない方法「raw文字列リテラル」について、わかりやすく整理します。

エスケープシーケンスとは?

エスケープシーケンスとは、バックスラッシュ(\)を使って、文字列内で特殊な指示を出すための書き方です。
通常の文字列処理を「逃れる(escape)」という意味から、この名前が付けられています。

よく使われるエスケープシーケンスは次のとおりです。

記号 意味 出力例
\n 改行 改行される
\t タブ(空白) 空白が入る
\\ バックスラッシュそのもの \
\' シングルクォート '
\" ダブルクォート "

実際の例

\n 改行

print("Hello\nWorld")

# 出力
Hello
World

\t タブ(空白)

print("Python\tis\tfun")

# 出力
Python    is    fun

\' シングルクォート

print('It\'s a pen.')

# 出力
It's a pen.

\" ダブルクォート

print("She said, \"Hello!\"")

# 出力
She said, "Hello!"

エスケープシーケンスに注意すべき場面

例えばWindowsのファイルパスを文字列で書くとき、

print("C:\Users\Name\Desktop")

このように書くと、\U\N が未定義のエスケープシーケンスとして誤解釈され、エラーや意図しない動作になることがあります。

Pythonでは、バックスラッシュが出現した時点で「これはエスケープシーケンスかも?」と考えてしまうためです。

バックスラッシュを「そのまま」使いたいとき

バックスラッシュを通常の文字として使いたい場合は、2回書く必要があります。

print("C:\\Users\\Name\\Desktop")

# 出力
C:\Users\Name\Desktop

しかしこれでは毎回バックスラッシュを2回書く必要があり、非常に面倒です。

ここで便利なのが「raw文字列リテラル」です。

raw文字列リテラルとは?

raw文字列リテラルとは、文字列リテラルの前に r を付けることで、
バックスラッシュを特別扱いせず「そのままの文字」として扱う方法です。

print(r"C:\Users\Name\Desktop")

# 出力
    C:\Users\Name\Desktop

バックスラッシュをエスケープせず、見たままの形で文字列として扱えます。

書き方まとめ

  • 通常の文字列:"文字列"
  • raw文字列リテラル:r"文字列"

r は必ず文字列の直前に書きます。

raw文字列リテラルの注意点

1. 最後にバックスラッシュだけ置くとエラーになる

raw文字列でも、最後がバックスラッシュのままだと構文エラーになります。

# ❌ エラー例
 print(r"C:\Users\Name\")

対策としては、連結を使うか、バックスラッシュを2つ書きます。

# ✅ 正しい例
print(r"C:\Users\Name" "\\")

# または
print(r"C:\Users\Name\\")

2. クォートは必ず半角で!

Pythonでは、文字列を囲むクォート('")は半角でなければなりません。
全角クォート()を使うと文法エラーになります。

3. r"..."r"..." のように r を2回連続では書けない

次のように書くとエラーになります。

# ❌ エラー例
print(r"C:\Users" r"\Name")

raw文字列リテラルは、1つの文字列リテラルの前にだけ r を付ける必要があります。
連結するときは通常の文字列として連結するか、別の工夫をしましょう。

# ✅ 正しい例
print(r"C:\Users" "\\Name")

または一続きのraw文字列で書きます。

print(r"C:\Users\Name")

4. クォート文字そのものを含めたい場合は注意が必要

raw文字列でもクォート記号('")を含める場合は、エスケープが必要です。

# ✅ 正しい例
print(r"He said, \"Hello!\"")

raw文字列はバックスラッシュのエスケープを無効にしますが、クォート記号に関しては通常の文字列ルールと同じ扱いになります。

まとめ

  • エスケープシーケンスは、バックスラッシュを使って特殊な動作を指示する記法
  • 例:\n(改行)、\t(タブ)、\\(バックスラッシュそのもの)、\'(シングルクォート)、\"(ダブルクォート)
  • バックスラッシュをそのまま使いたいときはraw文字列リテラル(r"...")を使う
  • raw文字列リテラルでも、末尾バックスラッシュやクォートには注意が必要
  • Windowsパスや正規表現を書くときに特に役立つ

エスケープシーケンスとraw文字列リテラルを正しく理解することで、 Pythonの文字列操作が格段にスムーズになると感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?