在《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, th