Python文字列におけるシングルクォーテーションとダブルクォーテーションの違い

Python文字列におけるシングルクォーテーションとダブルクォーテーションの違い

Pythonの文字列リテラルとクォート

Pythonの文字列リテラルを扱う際には、'シングルクォーテーション' と "ダブルクォーテーション" のいずれも使えます。

# どちらも同じ文字列
str1 = "abc"
str2 = 'xyz'

Pythonの言語仕様上、上記2つの書き方は同一の意味を持ちます。したがって、コード内で統一されていればいずれを使ってもよいでしょう。一般的には「"」が使われることがやや多いようです。

エスケープの違い

違いがあるとすれば、'シングルクォーテーション' と "ダブルクォーテーション" のエスケープについてです。

文字列中に「'」や「"」があるときに、同じクォートで囲む場合は、エスケープの必要があります。これは Javascript の文字列リテラルと同じです。

シングルクォートで囲まれた文字列リテラルで、シングルクォートを使用する場合、\' としてエスケープします。

同じく、ダブルクォートで囲まれた文字列リテラルで、ダブルクォートを使用する場合、\" としてエスケープします。

# 「'」という文字列
str1 = "「'」"
str2 = '「\'」' 

# 「"」という文字列
str3 = "「\"」"
str4 = '「"」'

同じ引用符が多く使われる場合は、異なる引用符で囲む方がわかりやすいです。例えば、HTML を文字列で表現する場合、内部にダブルクォートが多くなるので、シングルクォートで囲ったほうがいいでしょう。エスケープの必要がなくすっきりします。

a = '<a href="https://webbibouroku.com/">Web備忘録</a>'

ほかの言語との違い

PHP や Perlなど 'シングルクォーテーション' と "ダブルクォーテーション" を区別する言語もあるので、混同しないように注意が必要です。

以上です。

Pythonカテゴリの最新記事