記事内にはプロモーションが含まれています

【Python】ダブルクォーテーション3つ(トリプルクォート)の使い方まとめ

【Python】ダブルクォーテーション3つ(トリプルクォート)の使い方まとめ Python

Pythonのコードを読んでいると、""" のようにダブルクォーテーションが3つ連続している記述を見かけることはありませんか?

これは「トリプルクォート」と呼ばれるPython特有の記法で、非常に便利で強力な機能を持っています。

「長い文章を改行しながら変数に入れたい」
「関数やクラスの説明文(ドキュメント)を書きたい」
「一時的にコードを無効化(コメントアウト)したい」

こうした場面で活躍するのが、このダブルクォーテーション3つです。

この記事では、トリプルクォートの基本的な使い方から、実務で必須となるドキュメントストリング(docstring)の書き方、そしてよく議論になる「コメントとして使っていいのか?」という点まで、サンプルコード付きで徹底解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はこじんまりとしたプログラミングスクールを運営
  • モットーは「利他の精神」

ダブルクォーテーション3つ(トリプルクォート)とは?

Pythonにおける """(または ''')は、複数行にまたがる文字列を作成するための記法です。

通常のシングルクォーテーション ' やダブルクォーテーション " では、文字列の中で改行しようとするとエラーになりますが、トリプルクォートを使えば、見たままの改行やインデントをそのまま文字列として扱うことができます。

複数行の文字列を簡単に作成する

まずは、最も基本的な使い方である「改行を含む文字列」の作成方法を見てみましょう。

HTMLやSQL、長いメッセージなどを扱う際に非常に重宝します。

# 通常の方法(改行コード \n を使う必要がある)
text_normal = "1行目\n2行目\n3行目"

# トリプルクォートを使う方法(見たまま改行できる)
text_triple = """1行目
2行目
3行目"""

print("--- 通常 ---")
print(text_normal)
print("--- トリプルクォート ---")
print(text_triple)

実行結果

--- 通常 ---
1行目
2行目
3行目
--- トリプルクォート ---
1行目
2行目
3行目

text_triple の代入部分に注目してください。""" で囲まれた範囲内では、Enterキーで改行した箇所がそのまま改行として扱われます。

わざわざ \n(改行コード)を書く必要がないため、長い文章や整形されたテキストデータの可読性が劇的に向上します。

変数を含めた文字列を作る(f-stringとの併用)

Python 3.6以降で標準となった「f-string」は、トリプルクォートと組み合わせて使うことも可能です。

これにより、複数行のテンプレート的な文章に変数を埋め込むことが容易になります。

user_name = "田中"
item_count = 5
total_price = 3000

# f-string と トリプルクォート の組み合わせ
message = f"""
{user_name} 様

ご注文ありがとうございます。
商品点数: {item_count} 点
合計金額: {total_price} 円
"""

print(message)

実行結果


田中 様

ご注文ありがとうございます。
商品点数: 5 点
合計金額: 3000 円

f""" ... """ のように、開始のトリプルクォートの前に f を付けることで、文字列内で {変数名} を展開できるようになります。
メールの本文生成や、ログメッセージの作成などで非常に頻繁に使われるテクニックです。

最初の改行がそのまま入ってしまうのが気になる場合は、開始の """ の直後にバックスラッシュ \ を入れることで調整できます。

最も重要な用途:ドキュメントストリング (docstring)

Pythonにおいて、ダブルクォーテーション3つが最も重要な役割を果たすのが、ドキュメントストリング(docstring)としての利用です。
これは、関数、クラス、モジュールなどの定義の直後に記述する説明文のことです。

関数やクラスの説明を書く

関数やクラスの先頭にトリプルクォートで文字列を置くと、Pythonはそれを「このコードの説明文」として認識します。

この説明文は、help() 関数を使ったり、VS Codeなどのエディタでマウスオーバーした際に表示されたりします。

def calculate_area(width, height):
    """
    長方形の面積を計算して返します。

    Parameters:
        width (int): 幅
        height (int): 高さ

    Returns:
        int: 計算された面積
    """
    return width * height

# 関数の処理を実行
print(f"面積: {calculate_area(10, 20)}")

# docstringの内容を確認する
print("\n--- ドキュメント ---")
print(calculate_area.__doc__)

実行結果

面積: 200

--- ドキュメント ---

    長方形の面積を計算して返します。

    Parameters:
        width (int): 幅
        height (int): 高さ

    Returns:
        int: 計算された面積
    

関数 calculate_area の直下に書かれた """ ... """ の部分が docstring です。
ここには、関数の目的、引数の説明、戻り値の説明などを記述します。

この文字列は実行時には何の影響も与えませんが、calculate_area.__doc__ 属性に格納され、ドキュメント生成ツール(Sphinxなど)や開発支援ツールによって利用されます。

Pythonのコーディング規約(PEP 257)では、docstringにはダブルクォーテーション3つを使うことが推奨されています。

「コメントアウト」として使ってもいいのか?

トリプルクォートは、しばしば「複数行のコメントアウト」の代わりとして使われることがあります。

これはPythonにはC言語のような /* ... */ というブロックコメント構文が存在しないためです。

実行されないコードブロックを作る

print("処理開始")

"""
ここは実行されません。
プログラムによって評価はされますが、
変数に代入していないため、実質的に無視されます。
"""

# print("この行もコメントアウトしたい")
# print("この行も...")

print("処理終了")

Pythonでは、変数に代入されず、かつdocstringでもない場所(関数の先頭以外)にある文字列リテラルは、実行時に無視されます(厳密には評価されますが、何も起きずに捨てられます)。

そのため、手軽に広範囲を無効化したい場合にトリプルクォートで囲む手法がよく使われます。

注意点:インデントエラーに気をつけよう

トリプルクォートをコメント代わりに使う際は、インデントに注意が必要です。

Pythonはインデント(字下げ)に厳格な言語であるため、トリプルクォートの開始位置がずれていると IndentationError になります。

def my_func():
    print("Start")
    
"""
    これは関数の外にあるのでインデントなしでOK
"""
    
    # 以下の使い方はエラーになる可能性がある(文脈による)
    """
    インデントが合っていないとエラー
    """

基本的には # を使ったコメントアウトが推奨されますが、開発中のテストなどで一時的に大きくコードを無効化したい場合には、トリプルクォートも許容範囲と言えるでしょう。

シングルクォーテーション3つ (”’) との違いは?

Pythonでは """''' のどちらを使っても機能的には全く同じです。
しかし、慣習的な使い分けが存在します。

  • ダブルクォーテーション3つ ("""):
    • 推奨。特にdocstring(ドキュメントストリング)では、PEP 257により """ を使うべきとされています。
    • 文字列の中にシングルクォーテーション '(アポストロフィなど)が含まれる場合に便利です。
  • シングルクォーテーション3つ ('''):
    • 機能は同じですが、docstring以外での単純な複数行文字列として使われることがあります。
    • 文字列の中にダブルクォーテーション " が多く含まれる場合に便利です。

迷ったら、Pythonの標準的な規約に従い、ダブルクォーテーション3つ """ を使うのが無難です。

Pythonのスキルを活かして年収を上げる方法

以上、Pythonのトリプルクォートについて解説してきました。

なお、Pythonのスキルがある場合には、「転職して年収をアップさせる」「副業で稼ぐ」といった方法を検討するのがおすすめです。

Pythonエンジニアの需要は非常に高いため、転職によって数十万円の年収アップはザラで、100万円以上年収が上がることも珍しくありません。

なお、転職によって年収を上げたい場合は、エンジニア専門の転職エージェントサービスを利用するのが最適です。

今すぐ転職する気がなくとも、とりあえず転職エージェントに無料登録しておくだけで、スカウトが届いたり、思わぬ好待遇の求人情報が送られてきたりするというメリットがあります。

併せて、副業案件を獲得できるエージェントにも登録しておくと、空いている時間を活かして稼げるようなPythonの案件を探しやすくなります。

転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。