Python中"string"和'string'有何区别?
在PHP中,用"双引号"括起来的字符串会被解析,里面的变量会被替换成它们的值;而用'单引号'括起来的字符串则不会进行这样的替换。那么在Python中,这种情况也是这样吗?
9 个回答
8
在一些其他编程语言中,如果你用单引号包裹字符串,里面的特殊字符就不会被解释。比如在Ruby语言中就是这样:
irb(main):001:0> puts "string1\nstring2"
string1
string2
=> nil
irb(main):002:0> puts 'string1\nstring2'
string1\nstring2
=> nil
在Python中,如果你想让字符串按字面意思来处理,可以使用原始字符串(就是在字符串前面加个'r'字符):
>>> print 'string1\nstring2'
string1
string2
>>> print r'string1\nstring2'
string1\nstring2
44
Python 是少数几种语言之一,在这里单引号(')和双引号(")的功能是完全一样的。通常我选择使用哪种引号,主要看里面的内容。如果我要引用的字符串里有单引号,我就会用双引号,反之亦然,这样可以减少在字符串中需要转义的字符数量。
举个例子:
"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'
这个内容在 Python 文档的“字符串字面量”页面上有说明:
123
不可以:
2.4.1. 字符串和字节字面量
...简单来说:这两种类型的字面量(就是直接写在代码里的值)可以用成对的单引号(
'
)或双引号("
)包起来。它们也可以用成对的三重单引号或三重双引号包起来(这些通常被称为三重引号字符串)。反斜杠(\
)这个字符用来转义一些本来有特殊含义的字符,比如换行符、反斜杠本身或者引号字符...