Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Qingquan-Li opened this issue Aug 23, 2017 · 1 comment
Open

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

Qingquan-Li opened this issue Aug 23, 2017 · 1 comment
Labels

Comments

@Qingquan-Li
Copy link
Owner

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 ,所以有很多经典代码都养成了这样的习惯:一个纯粹的字符串,使用单引号。一个内部含有需要转义并展开用变量的字符串,用双引号。

@gan-gan777
Copy link

‘Thinks a lot!’

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants