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