python中单引号、双引号、三单引号、三双引号用法详解

来源:互联网 发布:我的世界砍树与挖矿js 编辑:程序博客网 时间:2024/03/29 01:32

在《Python核心编程(第二版)》P40第一次遇到引号问题,但和反斜杠(\)混在一起,且书本例子不多,说的不够清楚,故给出关于反斜杠的一些规范。以下内容配合实操会更有体验。


单引号('),双引号("),三单引号('''),三双引号(""")。我们通过下面第一点把4种引号简化成2种引号。

(一)单引号和双引号区别在哪里?或者说三单引号和三双引号区别在哪里?

暂时发现它们间只有一个区别,引号包括下的字符串不能含有该引号。比如:

print 'I like 'python''    #最右是两个单引号哈

或者print "There is a "letter" for you"

或者print "There is a "letter for you"     #字符串里仅有一个双引号

或者print '''There is a '''letter''' for you'''

以上四个print语句都是有语法错误的,好好体会下,它们正是犯了“引号包括下的字符串不能含有该引号”的原则。

如果要正确输出且不改变字符串,那相应要改成:

print "I like 'python'"    #最右是一个单引号和一个双引号哦哈

或者print 'There is a "letter" for you'

或者print 'There is a "letter for you'     #字符串里仅有一个双引号

或者print """There is a '''letter''' for you"""

如果字符串里没有单引号或者双引号或者三单引号或者三双引号呢?那你用哪个都行!

还有个容易犯错的例子,如:print '''I like 'python''''    #最右是一个单引号和一个三单引号

即使没有违反以上原则,但由于最右的单引号和三单引号连在一起,所以也会语法错误,最好在它们间空格,就不会出错了,如下:

print '''I like 'python' ''' 


通过上面第一点我们已经把引号简化了,所以接下来就讨论单引号和三单引号的差别(双引号和三双引号亦然)。

(二)单引号能做到的,三单引号也能做到;但三单引号还有一些单引号做不到的功能。

既然单引号能做到的,三单引号也能做到,那为什么还要保留单引号呢?亲,单引号输入效率高嘛。

那哪些是三单引号独有的呢?

三单引号可以跨多行,比如:


print '''hi there, this is a gift for you

wish you grow

safely and happily'''


输入以上语句,解释器会输出如下:


hi there, this is a gift for you

wish you grow

safely and happily


其实三单引号就相当于在每个语句的末尾加上\n,所以以上输入相当于:

print '''hi there, this is a gift for you\nwish you grow\nsafely and happily'''

当然,print 'hi there, this is a gift for you\nwish you grow\nsafely and happily' 也会输出同样结果,但


print 'hi there, this is a gift for you

wish you grow

safely and happily'


就会报错,因为单引号不能跨多行哈

继续尝试的话,比如输入:


print '''hi there, this is a gift for you\n

wish you grow\n

safely and happily'''


则输出:


hi there, this is a gift for you


wish you grow


safely and happily


(每两行间有个空行,因为你自己加上了\n,三单引号自动添加\n,就相当于有两个\n\n啦

这里又会延伸出一个问题,比如:


print 'hi there, this is a gift for you\   #最右多了个反斜杠(\

wish you grow\    #最右多了个反斜杠(\

safely and happily'


这样是可以的,反斜杠转义enter,但是输出结果是一行而不是三行哦,输出如下:

hi there, this is a gift for youwish you growsafely and happily

所以当一行语句过长时就可以用反斜杠(\


以上内容看起来好像很多,但按照例子敲下来好好体验,很容易掌握的哦
0 0