Python中"string"和'string'有何区别?

76 投票
9 回答
75719 浏览
提问于 2025-04-11 09:20

在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. 字符串和字节字面量

...简单来说:这两种类型的字面量(就是直接写在代码里的值)可以用成对的单引号(')或双引号(")包起来。它们也可以用成对的三重单引号或三重双引号包起来(这些通常被称为三重引号字符串)。反斜杠(\)这个字符用来转义一些本来有特殊含义的字符,比如换行符、反斜杠本身或者引号字符...

撰写回答