1
'Hello, world!' 2.python在打印字符串时,用单引号将其括起和用双引号括起没有任何区别。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用。
>>> '"Hello, world!" she said' '"Hello, world!" she said' 在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单引号将整个字符串括起,否则解释器将报错(做出这样的反应是正确的)。 >>> 'Let's go!' SyntaxError: invalid syntax
在这里,字符串为'Let',因此Python不知道如何处理后面的s(更准确地说是当前行余下的内容)。 第二个字符串包含双引号,因此必须使用单引号将整个字符串括起,原因和前面一样。实际上,并非必须这样做(这样做只是出于方便考虑)。可使用反斜杠(\)对引号进行转义,如下所示:
>>> 'Let\'s go!' "Let's go!"
>>> "\"Hello, world!\" she said" '"Hello, world!" she said' 像这样对引号进行转义很有用,且在有些情况下必须这样做。例如,在字符串同时包含单引号和双引号(如'Let\'s say "Hello, world!"')时,如果不使用反斜杠进行转义,该如何办呢? 长字符串和原始字符串('''tips''') 长字符串 要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。
print('''This is a very long string. It continues here. And it's not over yet. "Hello, world!" Still here.''')
提示
print("Hello, \ world!")>>> 1 + 2 + \ 4 + 5 12
原始字符串
>>> print('Hello,\nworld!') Hello, world!
可对反斜杠本身进行转义
>>> print('C:\\nowhere') C:\nowhere 这很好,但对于很长的路径,将需要使用大量的反斜杠:
path = 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz\\bozz'
>>> print(r'C:\nowhere') C:\nowhere >>> print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz') C:\Program Files\fnord\foo\bar\baz\frozz\bozz
>>> print(r'Let\'s go!')
Let\'s go!
>>> print(r"This is illegal\") SyntaxError: EOL while scanning string literal
>>> print(r'C:\Program Files\foo\bar' '\\') C:\Program Files\foo\bar\ 请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。
拼接字符串 拼接方法:字符串相加 >>> "Hello, " + "world!" 'Hello, world!' >>> x = "Hello, " >>> y = "world!" >>> x + y 'Hello, world!' 函数str()和repr() 使用str能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示。
>>> print(repr("Hello,\nworld!")) 'Hello,\nworld!' >>> print(str("Hello,\nworld!")) Hello, world!