1 单引号字符串以及对引号转义
字符串可以按如下表示:

1.1 “Hello, world!”
 1.2 “Let’s go!”
 1.3 ‘“Hello, world!” she said’
 1.4 ‘Hello, world!’
 1.5 ‘Let’s go’
 1.6 ““Hello, world!” she said”

2 拼接字符串

>>> "Let’s say " ‘“Hello, world!”’
 ‘Let’s say “Hello, world!”’>>> "Hello, " + “world!”
 ‘Hello, world!’
 >>> x = "Hello, "
 >>> y = “world!”
 >>> x + y
 ‘Hello, world!’

3 字符串表示 str 和 repr

>>> “Hello, world!”
 ‘Hello, world!’
 >>> print(“Hello, world!”)
 Hello, world!>>> “Hello, world!”
 ‘Hello, world!’
 >>> print(“Hello, world!”)
 Hello,
 world!

通过两种不同的机制将值转换成了字符串。你可通过使用函数str和repr①直接使用这两种机制。使用str能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示。

print(repr(“Hello, world!”))
 ‘Hello, world!’print(str(“Hello, world!”))
 Hello,
 world!

4 长字符串、原始字符串和字节
有一些独特而有用的字符串表示方式。例如,有一种独特的语法可用于表示包含换行符或反斜杠的字符串( 长字符串和原始字符串)。对于包含特殊符号的字符串, Python 2还提供了一种专用的表示语法,结果为Unicode字符串。这种语法现在依然管用,但是多余,因为在Python 3中,所有的字符串都是Unicode字符串。Python 3还引入了一种新语法,用于表示大致相当于老式字符串的字节对象。你将看到,在处理Unicode编码方面,这种对象依然扮演着重要的角色。
4.1 长字符串
要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。

print(’’‘This is a very long string. It continues here.
 And it’s not over yet. “Hello, world!”
 Still here.’’’)


还可使用三个双引号,如""“like this”""。请注意,这让解释器能够识别表示字符串开始
和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义。

常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽
略。例如,如果编写如下代码:

print(“Hello, world!”)

它将打印Hello, world!。这种处理手法也适用于表达式和语句。

1 + 2 +
 4 + 5
 12print
 (‘Hello, world’)
 Hello, world

4.2 原始字符串
原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用②。在常规字符串中,反斜杠扮演着特殊角色:它对字符进行转义,让你能够在字符串中包含原本无法包含的字符。例如,

>>> print(‘C: owhere’)
 C: owhere>>> print(r’C:Program Files nord ooaraz rozzozz’)
 C:Program Files nord ooaraz rozzozz>>> print(r’Let’s go!’)
 Let’s go!>>> print(r"This is illegal")
 SyntaxError: EOL while scanning string literal>>> print(r’C:Program Files ooar’ ‘’)
 C:Program Files ooar