Pythonのダブルクォーテーションとシングルクォーテーションの違いについて

Python,イメージ

AI実装検定のご案内

Pythonにおいて、文字列を表すときに ダブルクォーテーション(”)とシングルクォーテーション(’)のどちらを使うかは、基本的には好みや用途に応じて使い分けるものです。

どちらも文字列を定義するという点で機能的な違いはほとんどありませんが、細かい違いや使い分けのコツがあります。

以下で詳しく説明します。

目次

基本的な違い:意味は同じ

Pythonでは以下のように、シングルクォートもダブルクォートも文字列を定義する方法として使えます。

str1 = 'Hello'
str2 = "Hello"

print(str1 == str2)  # True

このように、'Hello'"Hello"まったく同じ文字列を表します。

使い分けのポイント

スタイルガイド(PEP8)による推奨

Pythonの公式スタイルガイド PEP8 では、次のような記述があります。

Pick a rule and stick to it. When a string contains single or double quote characters, use the other one to avoid backslashes in the string. It improves readability.

つまり

  • どちらかに統一するのが望ましい
  • 読みやすさを優先して、エスケープを減らすために使い分けるのがベスト

たとえば、チームで統一感を出すために ' ' を基本にして、" を含む文には " " を使う、といったルールを設けるとよいです。

JSONとの整合性

JSONでは、キーや文字列の囲みには ダブルクォーテーション(”) が必須です。

そのため、PythonでJSONを扱うときは、整合性を考えてダブルクォートを使うと見やすくなります。

import json

data = {
    "name": "Alice",
    "age": 30
}

json_str = json.dumps(data)
print(json_str)  # {"name": "Alice", "age": 30}

まとめ

Python,イメージ
特徴シングルクォート ' 'ダブルクォート " "
機能的な違いなしなし
クォートの内包ダブルクォートを含めやすいシングルクォートを含めやすい
エスケープの回避条件次第でやや不利条件次第でやや有利
PEP8での推奨一貫性を保てばどちらでもOK同左
JSONとの整合性不向き向いている

実践的アドバイス

  • 普段使いにはどちらを使っても構いませんが、プロジェクト内で統一することが重要です。
  • 文字列に含める引用符の種類によって使い分けると、エスケープが減り可読性が向上します。
  • ドキュメントやdocstringには " "(三連)を使うのがPython界隈の慣習です。

もしコーディング規約やスタイルガイドをチームで決める立場にあるなら、「基本はシングルクォート、JSONやdocstringにはダブルクォート」などのポリシーを決めておくと、コードベースの統一感が出てメンテナンス性も向上します。

必要であれば、BlackFlake8 などのフォーマッターで自動整形するのも有効です。

以上、Pythonのダブルクォーテーションとシングルクォーテーションの違いについてでした。

最後までお読みいただき、ありがとうございました。

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