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}
まとめ

特徴 | シングルクォート ' ' | ダブルクォート " " |
---|---|---|
機能的な違い | なし | なし |
クォートの内包 | ダブルクォートを含めやすい | シングルクォートを含めやすい |
エスケープの回避 | 条件次第でやや不利 | 条件次第でやや有利 |
PEP8での推奨 | 一貫性を保てばどちらでもOK | 同左 |
JSONとの整合性 | 不向き | 向いている |
実践的アドバイス
- 普段使いにはどちらを使っても構いませんが、プロジェクト内で統一することが重要です。
- 文字列に含める引用符の種類によって使い分けると、エスケープが減り可読性が向上します。
- ドキュメントやdocstringには
" "
(三連)を使うのがPython界隈の慣習です。
もしコーディング規約やスタイルガイドをチームで決める立場にあるなら、「基本はシングルクォート、JSONやdocstringにはダブルクォート」などのポリシーを決めておくと、コードベースの統一感が出てメンテナンス性も向上します。
必要であれば、Black
や Flake8
などのフォーマッターで自動整形するのも有効です。
以上、Pythonのダブルクォーテーションとシングルクォーテーションの違いについてでした。
最後までお読みいただき、ありがとうございました。