Python中的单引号,双引号,三重引号的区别

时间:2021-09-09 06:37:11

经常有人问Python中的单引号,双引号,三重引号的区别,其实上还是有区别的。

单引号和双引号基本上没什么区别,区别只在于下面这种情况。

>>> S1 = 'I do like "Python"'
>>> print(S_01)
I do like "Python"
>>> S2 = "I do like "Python""
  File "<stdin>", line 1
    S2 = "I do like "Python""
                            ^
SyntaxError: invalid syntax
>>> S3 = "I do like \"Python\""
>>> print(S3)
I do like "Python"
>>>

或者像下面这种类似情形:

>>> S4 = 'It's a dog!'
  File "<stdin>", line 1
    S4 = 'It's a dog!'
             ^
SyntaxError: invalid syntax
>>> S5 = 'It\'s a dog!'
>>> S6 = "It\'s a dog!"
>>> print(S5); print(S6)
It's a dog!
It's a dog!

上面的情形都是一样:如果单引号中含引号,这个时候要么用\来转译,要么用双引号; 同样道理,如果双引号里面含单引号,这个时候,要么用\来转译",要么外面用单引号,其他没任何区别。

现在说下单引号,双引号和三重引号('''string''' 或者"""string""" )的区别:

三重引号即有单引号,双引号的作用,还基本其不基本的几个功能:

1) 三重引号中,即可有单引号,又可以有双引号,无需转译!

>>> S7 = """It's a dog!"""
>>> S8 = '''I do like "Python"'''
>>> print(S7); print(S8)
It's a dog!
I do like "Python"

2) 三重引号的内容,如果未赋值给变量,其在Python中相当于多行注释!在函数中还相当于doc作用

>>> def add(x, y):
	'''Add two object(x, y) --> object(x + y)
	Return two var to one var
	'''
	return x + y

>>> print(add.__doc__)
Add two object(x, y) --> object(x + y)
	Return two var to one var
	
>>> 

3) 三重引号还有一个好处,三重引号在多行引号方便且是所见即所得的方式,直观!

>>> print("A\tB\tC\nD\tE\tF")
A       B       C
D       E       F
>>> print("""A  B       C
... D   E       F""")
A       B       C
D       E       F
>>>

比如要像上面的情况,使用三重引号,就不用考虑里面的转译符,直接可以按照自己的设计得出自己想要的结果。 这一点非常方便!跟下面的情况是异曲同工之妙:

>>> print('-' * 80)
--------------------------------------------------------------------------------
>>> print('--------------------------------------------------------------------------------')
--------------------------------------------------------------------------------
>>>
要打印80个字符的横线,如果一个个去数,无疑是很不方便,直观,这个时候使用'-' * 80,即省事又不容易出错!三重引号在处理起来具有类似作用,特别是多行字符串处理的时候,直观,方便!