65. 如何表示原始字符串

在大多数编程语言中, 例如在c语言中,”n”表示换行,”"在字符串中通常的含义是转义字符。 如果想表示”", 那就需要两个反斜线”\”来表示。这个反斜线也称为逃逸字符。

在python中,反斜线“有”也是逃逸字符。如果字符串原始就很多反斜线字符,例如文件路径。 我们就需要再通过反斜线来转义,就要加多个反斜线,非常繁琐,如何避免这种情况呢?

在python中,可以使用”r”字符前导字符修饰字符串来表示这是一个原始字符串, 例如一个目录路径r”C:zhangcodepythonpython100”

>>> s1 = r"C:\zhang\code\python\python100"
>>> s1
'C:\\zhang\\code\\python\\python100'
>>> print(s1)
C:\zhang\code\python\python100
>>> len(s1)
30
>>> s2 = "C:\zhang\code\python\python100"
>>> len(s2)
30
>>> s3 = "C:\\zhang\\code\\python\\python100"
>>> len(s3)
30

在python中,反斜线后某些特定字符进行了转义,其他进行了转义,所以以上不加转义 正好也是正确的结果。但碰到某些特殊的字符就不正确了, 例如:

>>> s1 = "C:\\book"
>>> len(s1)
7
>>> s2 = "c:\book"
>>> len(s2)
6

因此需要对所有的反斜线进行转义,或者使用”r”来表示原始字符串。

常见的转义字符如下:

逃逸字符序列

含义

\ Backslash () ' Single quote (‘) " Double quote (“) a ASCII Bell (BEL) b ASCII Backspace (BS) f ASCII Formfeed (FF) n ASCII Linefeed (LF) r ASCII Carriage Return (CR) t ASCII Horizontal Tab (TAB) v ASCII Vertical Tab (VT) ooo Character with octal value ooo (1,3) xhh Character with hex value hh (2,3) ============= ======================================

如果字符串本身有换行,那我们采用三引号字符串来包含他

""" Hello world
    Hello Beijing
"""