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

3.3 原始字符串

看起来好像反斜杠是一个好东西,那不妨试试打印C:\now,代码如下:

     >>> string = 'C:\now'
     >>> string
     'C:\now'
     >>> print(string)
     C:
     ow

打印结果并不是我们预期的,原因是反斜杠(\)和后边的字符(n)恰好转义之后构成了换行符(\n)。这时候有朋友可能会说,用反斜杠来转义反斜杠不就可以啦。嗯,不错,的确可以用反斜杠对自身进行转义:

     >>> string = 'C:\\now'
     >>> string
     'C:\\now'
     >>> print(string)
     C:\now

但如果一个字符串中有很多个反斜杠,我们就不乐意了。毕竟,这不仅是一个苦差事,还可能使代码变得混乱。

不过大家也不用怕,因为在Python里有一个快捷的方法,就是使用原始字符串。原始字符串的使用非常简单,只需要在字符串前边加一个英文字母r即可:

     >>> string = r'C:\now'
     >>> string
     'C:\\now'
     >>> print(string)
     C:\now

在使用字符串时需要注意的一点是:无论是否为原始字符串,都不能以反斜杠作为结尾(注:反斜杠放在字符串的末尾表示该字符串还没有结束,换行继续的意思,下一节会介绍)。如果坚持这样做就会报错:

     >>> string = 'FishC\'
     SyntaxError: EOL while scanning string literal
     >>> string = r'FishC\'
     SyntaxError: EOL while scanning string literal

大家不妨考虑一下:如果非要在字符串的结尾加个反斜杠,有什么办法可以来灵活实现呢?