Pythonの文字列と raw文字列をやさしく解説
では、Pythonの文字列と raw文字列 について、プログラミング初心者向けに「かみ砕いた説明」と「例題」を交えて詳しく解説します。
1. 文字列とは?
- 文字列は
"..."や'...'で囲んだ文字の集まりです。 - 例:
name = "Python"
print(name) # 出力: Python
Python2. バックスラッシュ \ の特別な意味
Pythonでは \ は「エスケープシーケンス」と呼ばれ、特別な意味を持ちます。
\n→ 改行\t→ タブ\\→ バックスラッシュ1つ
例:
print("Hello\nWorld")
# 出力:
# Hello
# World
Python3. raw文字列とは?
r"..." または R"..." と書くと、エスケープ処理をしない文字列 になります。
つまり、\n も \\ もそのまま文字として扱われます。
例:
print(r"Hello\nWorld")
# 出力: Hello\nWorld
Python👉 改行されずに \n がそのまま表示されます。
4. どんなときに便利?
- Windowsのパス
print("C:\\Users\\Python\\test") # 通常の文字列
print(r"C:\Users\Python\test") # raw文字列
Python👉 raw文字列なら \\ と二重に書かなくてよい
- 正規表現(
\dや\sなどを多用する)
import re
pattern = r"\d+" # 数字にマッチ
print(re.findall(pattern, "abc123def456"))
# 出力: ['123', '456']
Python5. 注意点
- 文字列の最後に
\は書けない
print(r"abc\") # エラーになる
Python👉 対処法: 文字列を連結する
print(r"abc" + "\\") # 出力: abc\
Python- クォートの扱い
- raw文字列でも
"..."の中に"を書くときは注意 '...'で囲めば中に"をそのまま書ける
- raw文字列でも
例題で練習
例題1
次のコードの出力はどうなるでしょう?
print("C:\\new_folder\\test")
Python解答
C:\new_folder\test
👉 \\ が1つの \ として表示される
例題2
次のコードの出力は?
print(r"C:\new_folder\test")
Python解答
C:\new_folder\test
👉 raw文字列なので \\ と書かなくてもOK
例題3
次のコードはエラーになります。なぜでしょう?
print(r"abc\")
Python解説
- raw文字列は最後に
\を書けないからです。 - Pythonが「次の文字をエスケープするのかな?」と誤解してしまいます。
まとめ
\は特別な意味を持つ(改行やタブなど)r"..."で raw文字列にすると、\をそのまま扱える- パスや正規表現で大活躍
- ただし「最後に
\は書けない」点に注意
👉 ここまで理解できたら、次は「正規表現 × raw文字列」で実際に検索処理を試すと、さらに実用的に身につきます。
