在普通字符串中,反斜线\代表转义,我们常用的换行符“\n”就是一个很好的例子。但是这在某些时候会引起不便,比如要输出限制文件目录:c:\newStaff
str = 'c:\newStaff\tiandi'上面的代码输出结果为:
print str
c:
ewStaff irst
\n被显示为了换行,\t被现实为了tab符号,可是这并不是我们想要的,那怎么办呢?当然你可以通过在路径分割的反斜线前面在加一个反斜线,得到我们期望的结果。
str = 'c:\\newStaff\\tiandi'这样代码机会输出:c:\newStaff\tiandi,符合我们想要的结果,但是当路径很长很多的时候这样输入毕竟很麻烦(相信大家并不想对复制过来的路径一个一个的加上n个反斜线吧),这时Python中的原始字符串就派上用长了
print str
str = r'C:\Program Files (x86)\Tencent\QQMicroGameBoxService\1.0.5.2\Log'猜猜上面会输出什么样的字符串,没错就是我们想要的路径:C:\Program Files (x86)\Tencent\QQMicroGameBoxService\1.0.5.2\Log
print str
Python中的原始字符串是在普通字符串前加一个字符r(大写亦可)来标记的,可以认为原始字符串中的反斜线具有转义之名,不做转义之实,举两个例子说明下:
例一代码段1:
str1 = r'Let\'s go!'例一代码段2:
print str1
str1 = r'Let\\'s go!'代码段1是可以执行成功的,输出为:Let\'s go!,而代码段2会报invalid syntax
print str1
例二代码段1:
str1 = r'hello world\'print str1例二代码段2:
str1 = r'hello world\\'
print str1
代码段1会报EOL while scanning string literal,而代码段2可以执行成功,输出为:hello world\\
(“具有转义之名,不做转义之实”可能有点词不达意,允许我姑且这么说吧!)