最近没有找到实际的需求,便在网上搜罗,发现一个Python的小tips。
单引号(')与双引号(")以及连续三个单引号(''')的区别,在此记录以便查看。
这就开始:
为了方便,在此约定:单引号即',双引号即",三引号即'''。
直接上例说明:
例子1:打印出I'm doing my homework:
one1 = 'I\'m doing my homework' ##单引号
two1 = "I'm doing my homework" ##双引号
three1 = '''I'm doing my homework''' ##三引号
print one1
print two1
print three1看一下例子1的输出:
I'm doing my homework
I'm doing my homework
I'm doing my homework
这个例子可以看到,这三种引号都是可以做string类型的引用的。
区别呢?
区别1:例子1可以看到,使用单引号(')引用字符串时,用到了转义字符(\')来表示字符串里的单引号('),而使用双引号(")与三引号(''')没有使用转义字符;区别2:例子1也可以看到,使用双引号(")引用字符串时,对字符串里的单引号(')可以不用转义字符,解析器可以自动识别,那反过来也成立(用单引号引用双引号字符时,也可以不用转义字符);
再看例子2:
one2_1 = 'I\'m doing my homework' ##单引号引用单引号
one2_2 = 'I"m doing my homework' ##单引号引用双引号
two2_1 = "I'm doing my homework" ##双引号引用单引号
two2_2 = "I\"m doing my homework" ##双引号引用双引号
print one2_1
print one2_2
print two2_1
print two2_2例子2结果:
I'm doing my homework
I"m doing my homework
I'm doing my homework
I"m doing my homework区别3:三引号内的换行可以直接输出,而双引号与单引号直接换行会报错,而要实现换行输出的话需要用转移字符。
先看一个例子3:
one3 = 'I\'m \ndoing \nmy \nhomework' ##转义字符换行
two3 = "I\'m \ndoing \nmy \nhomework" ##转义字符换行
three3 = '''I\'m ##不用转义字符换行,而是直接回车,并且可以添加注释
doing
my
homework'''
print one3
print two3
print three3
例子3结果:
I'm
doing
my
homework
I'm
doing
my
homework
I'm
doing
my
homework
可以看到,如果字符串里有换行的话,单引号与双引号需要使用换行转义字符,而使用三引号可以直接回车换行,不需要使用转义字符,并且在三引号的行末也可以添加(#)注释
PS:Python里提供了另外一种通用的代码换行续写符号\,使用这个符号,可以在代码里把长长一行拆开分成两行写,例如:
str1 = I\'m doing \
my homework'
print \
str1
print 1 + 2 + 3 + 4 + \
5 + 6 + 7 + 8</span>
输出结果:
I'm doing my homework
36
可以看到(\)可以看作是代码里拆行分行操作。
















