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

        在普通字符串中,反斜线\代表转义,我们常用的换行符“\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\\

       (“具有转义之名,不做转义之实”可能有点词不达意,允许我姑且这么说吧!)



  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值