零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

2.4.2 字符串

在Python中有3种表示字符串的方式——单引号、双引号、三引号。单引号和双引号的作用是一样的,对于不同的程序员可以根据自己的习惯使用单引号或双引号。PHP程序员可能更习惯使用单引号表示字符串,C、Java程序员则习惯使用双引号表示字符串。下面这段代码中单引号和双引号的使用是等价的。


01     # 单引号和双引号的使用是等价的
02     str = "hello world!"                    # 定义字符串变量str并赋值
03     print (str)
04     str = 'hello world!'
05     print (str)

【代码说明】第3行代码输出结果:


hello world!

第5行代码输出结果:


hello world!

三引号的用法是Python特别的语法,三引号中可以输入单引号、双引号或换行等字符。


01     # 三引号的用法
02     str = '''he say "hello world!"'''
03     print( str)

【代码说明】第3行代码的三引号中带有双引号,双引号也会被输出。输出结果:


he say "hello world!"

三引号的另一种用法是制作文档字符串。Python的每个对象都有一个属性__doc__,这个属性用于描述该对象的作用。


01     # 三引号制作doc文档
02     class Hello:
03         '''hello class'''
04         def printHello():
05             '''print hello world'''
06             print ("hello world!")
07     print( Hello.__doc__)
08     print (Hello.printHello.__doc__)

【代码说明】

·第2行代码定义了一个名为Hello的类。

·第3行是对Hello类的描述,该字符串将被存放在类的__doc__属性中。

·第4行代码定义了一个方法printHello()。

·第5行代码描述了printHello(),并把字符串存放在该函数的__doc__属性中。

·第6行代码输出结果:


hello world!

·第7行代码输出Hello的__doc__属性的内容。输出结果:


hello class

·第8行代码输出printHello()的__doc__属性的内容。输出结果:


print hello world

如果要输出含有特殊字符(单引号、双引号等)的字符串,需要使用转义字符。Python中转义字符为“\”,和C、Java中的转义字符相同。转义操作只要在特殊字符的前面加上“\”即可。下面这段代码说明了特殊字符的转义用法。


01     # 转义字符
02     str = 'he say:\'hello world!\''
03     print (str)

【代码说明】第2行代码中的单引号是特殊字符,需要在“'”前加上转义字符。第3行代码的输出结果:


he say:'hello world!'

使用双引号或三引号可以直接输出含有特殊字符的字符串,不需要使用转义字符。


01     # 直接输出特殊字符
02     str = "he say:'hello world!'"
03     print (str)
04     str = '''he say:'hello world!' '''
05     print (str)

【代码说明】

·第2行代码中使用了双引号表示字符串变量str,因此Python能够识别出双引号内部的单引号只是作为输出的字符。

·第3行代码的输出结果:


he say:'hello world!'

·第4行代码使用三引号表示字符串变量str,注意最后一个单引号后面留有一个空格,这个空格是为了让Python识别出三引号留下的。如果不留下这个空格,4个单引号连在一起,Python解释器不能正确识别三引号。提示如下错误:


SyntaxError: EOL while scanning single-quoted string

·第5行代码的输出结果:


he say:'hello world!'

注意 输出的字符串中含有单引号,使用双引号表示字符串即可。相反,输出的字符串中含有双引号时,可使用单引号表示字符串。