Pythonの文字列操作:クォート、エスケープ文字、複数行文字列の基本

Pythonにおいて、文字列は最も基本的なデータ型の一つです。テキストデータを扱う上で、文字列をどのように定義し、特殊な文字をどう表現するかを理解することは非常に重要です。

この記事では、Pythonで文字列を定義するための様々な方法(クォートの使い方、エスケープ文字、raw文字列、複数行文字列)について解説します。


目次

シングルクォートとダブルクォート

Pythonでは、文字列を定義するためにシングルクォート (') またはダブルクォート (") のどちらでも使用できます。

print('これはシングルクォートを使った文字列です。')
print("これはダブルクォートを使った文字列です。")

この二つを使い分ける主な利点は、文字列の中にクォート自体を含めたい場合です。例えば、ダブルクォートで囲んだ文字列の中では、シングルクォートをそのまま文字として使えます。

# ダブルクォートの中にシングルクォートを含める
message = "I'm a Python programmer."
print(message)

エスケープ文字

もし、同じ種類のクォートを文字列内で使いたい場合や、改行などの特殊な文字を表現したい場合は、エスケープ文字を使います。エスケープ文字は、バックスラッシュ(\、日本では円マーク¥で表示されることが多い)と、それに続く一文字で構成されます。

エスケープ文字意味
\'シングルクォート
\"ダブルクォート
\n改行
\tタブ
\\バックスラッシュ自体
# シングルクォートをエスケープ
message = 'He said, \'Hello!\''
print(message)

# 改行文字(\n)を使って複数行に表示
multiline_message = "First line.\nSecond line.\nThird line."
print(multiline_message)

実行結果:

He said, 'Hello!'
First line.
Second line.
Third line.

raw文字列

ファイルパスのように、バックスラッシュを文字そのものとして扱いたい場合、エスケープ文字のルールが煩わしくなることがあります。そのような場合は、文字列の開始クォートの前に r を置くことでraw文字列として扱うことができます。

raw文字列の中では、バックスラッシュは特別な意味を持たず、単なる文字として解釈されます。

# 通常の文字列だと \\ と書く必要がある
file_path_normal = 'C:\\Users\\Documents\\file.txt'

# raw文字列ならそのまま書ける
file_path_raw = r'C:\Users\Documents\file.txt'

print(f"通常の文字列: {file_path_normal}")
print(f"raw文字列: {file_path_raw}")

三連クォートによる複数行文字列

複数行にまたがる長い文字列を定義したい場合、三連クォート(''' または """)を使うと非常に便利です。三連クォートで囲まれた範囲では、改行がそのまま文字列に反映されます。

# 三連クォートで複数行の文字列を定義
email_body = '''
こんにちは、田中さん

来週の会議の日程が確定しましたので、お知らせします。

日時: 9月5日(火) 10:00-
場所: 第3会議室

ご確認のほど、よろしくお願いいたします。
'''

print(email_body)

## 複数行コメント

この三連クォートは、複数行にわたるコメントとしてもよく利用されます。プログラムの先頭に関数の説明を書く際などにも便利です。

'''
このスクリプトは、
ユーザーデータCSVを処理して、
月次レポートを生成するものです。
'''
def process_user_data():
    # ...関数の処理...
    pass

まとめ

  • 文字列は'"のどちらでも定義できます。
  • \nなどのエスケープ文字で特殊な文字を表現します。
  • バックスラッシュをそのまま扱いたい場合は**raw文字列 (r'...')**を使います。
  • 改行を含む長い文字列は**三連クォート ('''...''')**で定義すると便利です。

これらの機能を適切に使い分けることで、あらゆるテキストデータを柔軟に扱うことができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次