Pythonでの文字列リテラルの解説
Pythonでの文字列リテラル
以下は、このページのセクション一覧です。各リンクをクリックすると、該当するセクションにジャンプできます。
基本的な文字列リテラル
Pythonでは、文字列リテラルはシングルクォート('
)またはダブルクォート("
)で囲むことで作成できます。どちらを使っても機能は同じですが、文字列内にクォートを含める際の便利さで使い分けられます。
# シングルクォート
string1 = 'Hello, world!'
# ダブルクォート
string2 = "Hello, world!"
# シングルクォートを含む場合
string3 = "I'm learning Python."
# ダブルクォートを含む場合
string4 = 'He said, "Python is amazing!"'
エスケープシーケンス
エスケープシーケンスを使用すると、通常は文字列内で特別な意味を持つ文字を表現できます。エスケープシーケンスはバックスラッシュ(\
)で始まります。
# 改行
string = "Hello,\nworld!"
# タブ
string = "Column1\tColumn2"
# クォートを含む
string = 'He said, \"Python is great!\"'
# バックスラッシュ自体を表現
string = "This is a backslash: \\"
主なエスケープシーケンス一覧:
\n
: 改行\t
: タブ\'
: シングルクォート\"
: ダブルクォート\\
: バックスラッシュ\uXXXX
: Unicode文字(例:\u3042
は「あ」)
三重クォートによる複数行文字列
三重クォート('''
または"""
)を使用すると、複数行にわたる文字列を簡単に作成できます。エスケープシーケンスを使わずに改行を含められるのが特徴です。
multi_line_string = """これは
複数行に
わたる文字列です。"""
multi_line_string2 = '''これも
複数行の
文字列です。'''
インデントを含む場合、textwrap.dedent
を使うと整形が可能です。
raw文字列
raw文字列(r"..."
またはr'...'
)では、エスケープシーケンスが無効化されます。そのため、正規表現やパス文字列を扱う際に便利です。
# 通常の文字列
normal_string = "C:\\Users\\name\\documents"
# raw文字列
raw_string = r"C:\Users\name\documents"
# エスケープシーケンスをそのまま表示
raw_example = r"Hello\nWorld"
print(raw_example) # Hello\nWorld
Unicode文字列
Pythonの文字列リテラルはデフォルトでUnicode対応です。Unicodeコードポイントを指定することで特定の文字を表現できます。
# Unicodeコードポイントを使用
unicode_string = "\u3053\u3093\u306b\u3061\u306f" # こんにちは
# 絵文字の例
emoji = "\U0001F600" # 😀
f文字列(フォーマット済み文字列リテラル)
f文字列(フォーマット済み文字列リテラル)は、Python 3.6以降で導入された文字列フォーマット方法です。文字列内に式を埋め込むことができます。
name = "Python"
age = 30
# f文字列の使用
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # My name is Python and I am 30 years old.
# 式を直接埋め込む
result = f"The result of 5 + 2 is {5 + 2}."
print(result) # The result of 5 + 2 is 7.
応用例と実践
以下は、これまで説明した文字列リテラルを組み合わせた応用例です。
import os
# パスの結合
path = r"C:\Users" + "\\" + "Documents"
print(path)
# 複数行とf文字列の組み合わせ
name = "Taro"
message = f"""Hello, {name}!
This is a sample message.
Best regards,
Python Script
"""
print(message)
# Unicodeとエスケープシーケンス
unicode_message = "こんにちは\nこれはUnicodeの例です: \u3053\u3093\u306b\u3061\u306f"
print(unicode_message)
これらを理解することで、Pythonの文字列操作がより柔軟になります。