Pythonの文字列リテラルとクォート
Pythonの文字列リテラルを扱う際には、'シングルクォーテーション' と "ダブルクォーテーション" のいずれも使えます。
# どちらも同じ文字列
str1 = "abc"
str2 = 'xyz'
Pythonの言語仕様上、上記2つの書き方は同一の意味を持ちます。したがって、コード内で統一されていればいずれを使ってもよいでしょう。一般的には「"」が使われることがやや多いようです。
エスケープの違い
違いがあるとすれば、'シングルクォーテーション' と "ダブルクォーテーション" のエスケープについてです。
文字列中に「'」や「"」があるときに、同じクォートで囲む場合は、エスケープの必要があります。これは Javascript の文字列リテラルと同じです。
シングルクォートで囲まれた文字列リテラルで、シングルクォートを使用する場合、\'
としてエスケープします。
同じく、ダブルクォートで囲まれた文字列リテラルで、ダブルクォートを使用する場合、\"
としてエスケープします。
# 「'」という文字列
str1 = "「'」"
str2 = '「\'」'
# 「"」という文字列
str3 = "「\"」"
str4 = '「"」'
同じ引用符が多く使われる場合は、異なる引用符で囲む方がわかりやすいです。例えば、HTML を文字列で表現する場合、内部にダブルクォートが多くなるので、シングルクォートで囲ったほうがいいでしょう。エスケープの必要がなくすっきりします。
a = '<a href="https://webbibouroku.com/">Web備忘録</a>'
ほかの言語との違い
PHP や Perlなど 'シングルクォーテーション' と "ダブルクォーテーション" を区別する言語もあるので、混同しないように注意が必要です。
以上です。
コメントを書く