单引号字符串vs双引号字符串

时间:2017-09-01 11:30:10

标签: python string escaping

为什么我们需要单引号字符串的转义字符,而不是双引号。

a = 'hello how\'s it going'
a1 = 'hello how's it going'
b =  "hello how's it going"

assert(a==b) # passes

assert(a1==b) # errors

错误消息:

 File "string.py", line 1                                                      
    a = 'hello how's it going'                                                 
                  ^                                        
SyntaxError: invalid syntax   

5 个答案:

答案 0 :(得分:4)

如果您在字符串周围使用'"将其标记为字符串文字,则无关紧要。但是你不能在字符串文字中使用该字符而不使用前面的\来转义它 - 否则Python将其解释为字符串的结尾。

例如,"分隔的字符串文字中的"也需要进行转义:

a = "And he said: \"What a nice day\"."

答案 1 :(得分:0)

因为单引号会关闭字符串。例如

'Broken' single quote string'
"Broken" double quote string"

如果您需要字符串中的单引号,请使用双引号,反之亦然

"valid 'single' quote in a string"
'valid "double" quote in a string'

答案 2 :(得分:0)

您可以使用单引号或双引号,但如果您想在字符串中使用它们而不删除它们,则开始和结束符号应与字符串内使用的符号不同。

例如,你可以这样做:

a = "hello how's it going"

或者:

a = 'hello my "friend"'

答案 3 :(得分:0)

单引号

当您使用单引号'启动字符串时,它会搜索下一个单引号'以结束字符串。当遇到第二个单引号'时,它会以该引号结束字符串,并超出第二个引用,它不接受任何字符串。因此,您需要将带有反斜杠的引号作为转义字符。

双重报价

正如您可能已经猜到的那样,在这种情况下,字符串也会以双引号"开头和结尾。在第一个双引号和第二个双引号之间,它接受任何字符串,除了双引号(原因与单引号相同)。

希望这能澄清你的字符串概念:)

答案 4 :(得分:0)

这两种类型(单引号和双引号)之间的选择取决于程序员的选择。通常,双引号用于字符串表示,单引号用于正则表达式、字典键或 SQL。因此,单引号和双引号在 python 中都描述了字符串,但有时我们需要使用一种类型而不是另一种。

Read more