Thanks to visit codestin.com
Credit goes to github.com

Skip to content

单引号、双引号和三双引号的区别 #48

@qingquan-li

Description

@qingquan-li

1 个双引号与 3 个双引号的区别

双引号所表示的字符串通常要写成一行,如:

s1 = "hello,world"

如果要写成多行,那么就要使用 \ (“连行符”)吧,如:

s2 = "hello,\
world"

s2与s1是一样的。如果你用3个双引号的话,就可以直接写了,如:

s3 = """hello,
world,
hahaha."""

那么s3实际上就是 "hello,\nworld,\nhahaha." , 注意 \n ,所以,
如果你的字符串里 \n 很多,你又不想在字符串中用 \n 的话,那么就可以使用3个双
引号。而且使用3个双引号还可以在字符串中增加注释,如:

s3 = """hello,  #hoho, this is hello, 在3个双引号的字符串内可以有注释哦
world,          #hoho, this is world
hahaha."""

这就是3个双引号和1个双引号表示字符串的区别了,3个双引号与1个单引号的区别也
是和这个一样的

Python 支持单引号是有原因的,下面比较 1 个单引号和 1 个双引号的区别

当我用单引号来表示一个字符串时,如果要表示 Let's go 这个字符串,必须这样:

s4 = 'Let\'s go'

注意没有,字符串中有一个 ' ,而字符串又是用 ' 来表示,所以
这个时候就要使用转义符 \\ ,转义符应该知道吧), 如果你的字符串中有一大堆
的转义符,看起来肯定不舒服, Python 也很好的解决了这个问题,如:

s5 = "Let's go"

这时,我们看, Python 知道你是用 " 来表示字符串,所以 Python 就把字符串中的那
个单引号 ' , 当成普通的字符处理了,是不是很简单。

对于双引号,也是一样的,下面举个例子

s6 = 'I realy like "python"!'

这就是单引号和双引号都可以表示字符串的原因了。

以上参考自:http://www.cnblogs.com/sirsunny/archive/2005/04/15/138608.html

补充:字符串既可以使用单引号,又可以使用双引号

LIGHT_MESSAGES = {
    'English': "There are %(number_of_lights)s lights.",
    'Pirate':  "Arr! Thar be %(number_of_lights)s lights."
}

这个习惯来自 Unix 传统。

在 Unix Shell 传统中,无论单引号还是双引号都可以用来表示字符串,但是单引号内部的变量不被解析,而双引号内部的变量将会被展开。

而 Python 是个历史非常悠久的语言,悠久得在那个年代主流的系统就是 Unix ,所以有很多经典代码都养成了这样的习惯:一个纯粹的字符串,使用单引号。一个内部含有需要转义并展开用变量的字符串,用双引号。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions