您的位置:首页 > 编程语言 > Python开发

python中的原始字符串,神奇的反斜线

2017-11-01 23:36 344 查看
        在普通字符串中,反斜线\代表转义,我们常用的换行符“\n”就是一个很好的例子。但是这在某些时候会引起不便,比如要输出限制文件目录:c:\newStaff

str = 'c:\newStaff\tiandi'
print str
       上面的代码输出结果为:

c:

ewStaff irst

       \n被显示为了换行,\t被现实为了tab符号,可是这并不是我们想要的,那怎么办呢?当然你可以通过在路径分割的反斜线前面在加一个反斜线,得到我们期望的结果。

str = 'c:\\newStaff\\tiandi'
print str
       这样代码机会输出:c:\newStaff\tiandi,符合我们想要的结果,但是当路径很长很多的时候这样输入毕竟很麻烦(相信大家并不想对复制过来的路径一个一个的加上n个反斜线吧),这时Python中的原始字符串就派上用长了

str = r'C:\Program Files (x86)\Tencent\QQMicroGameBoxService\1.0.5.2\Log'
print str
       猜猜上面会输出什么样的字符串,没错就是我们想要的路径:C:\Program Files (x86)\Tencent\QQMicroGameBoxService\1.0.5.2\Log

       Python中的原始字符串是在普通字符串前加一个字符r(大写亦可)来标记的,可以认为原始字符串中的反斜线具有转义之名,不做转义之实,举两个例子说明下:

例一代码段1:

str1 = r'Let\'s go!'
print str1
例一代码段2:

str1 = r'Let\\'s go!'
print str1
       代码段1是可以执行成功的,输出为:Let\'s go!,而代码段2会报invalid syntax

例二代码段1:
str1 = r'hello world\'
print str1
例二代码段2:

str1 = r'hello world\\'
print str1


       代码段1会报EOL while scanning string literal,而代码段2可以执行成功,输出为:hello world\\

       (“具有转义之名,不做转义之实”可能有点词不达意,允许我姑且这么说吧!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 原始字符串