Pythonでの文字列リテラルの解説

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の文字列操作がより柔軟になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です