首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python入门学习篇(6)-数据类型之字符串(完

上文有提到,今天我们来谈一谈字符串(string)的最后一个问题:原生字符串'r'。

1

原生字符串'r'

Python中字符串前面加上 r 表示原生字符串,与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符”\”,那么使用编程语言表示的正则表达式里将需要4个反斜杠”\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。

案例展示

importre

a='China_net809Chinna2008Beijing'

b=re.findall(r'\dBeijing',a)

print(b)

输出结果:

Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r”\”表示。同样,匹配一个数字的”\d”可以写成r”\d”。有了原生字符串,再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

假如在代码中,我们使用的字符串是一个路径,有可能会出现下面这种情形。

path='D:\new_file'

print(path)

这段代码运行之后,结果如下:

new_file文件夹被剃了‘头’,哈哈,为啥出现这种情况呢。罪魁祸首是在路径的字符串中,包含了“\n”这玩意它是一个换行符。关乎换行符之前也提到过。这里不做过多赘述。只要再加入一个“\”。

path='D:\\new_file'

print(path)

上面这段代码的运行结果就正常了。

由此可见,“\”是转义字符,它能够将第2个“\”从转义字符转回普通字符,从而“\n”就不再起到换行符的作用。

但是遇到下方这个路径,看起来就会有些麻烦!

path='D:\new_file\world\net\header\data'

如果想正常使用这个路径,我们需要加上多个“\”。

path='D:\\new_file\\world\\net\\header\\data'

实际上,这样的路径我们可以将它转换为原始字符串,转换方法是在字符串之前写一个“r”。

path=r'D:\new_file\world\net\header\data'

print(path)

上面这段代码的运行结果显示:

这样,我们就无须添加多个“\”,也能够正常使用这个路径。

不过,有的时候,我们使用的路径需要是“\”结尾。例如:path=D:\new_file\world\net\header\data\

这时要注意,原始字符串不能以“\”结尾,否则会抛出异常。另外,也不能通过转义字符转换最后的“\”,程序会在路径末尾原样输出两个“\”。

示例代码:(错误示例)

path='D:\new_file\world\net\header\data\'

print(path)

输出结果提示异常:

path=r'D:\new_file\world\net\header\data\\'

print(path)

输出结果提示:末尾保持原样

当我们遇到这种需求时,我们需要对末尾的“\”单独进行转义处理,并和前面的字符串连接。

示例代码:(正确示例)

path=r'D:\new_file\world\net\header\data''\\'

print(path)

上面的代码,大家可以看到是两部分字符串并排在一起,这种书写方法是符合规则的,程序会自动把多个并列的字符串连接到一起。

输出结果,正常显示:

最后再来看一个案例:

name='圣天'

sense=name+'是' '一个' '很帅很帅的' '大帅哥''!'

print(sense)

输出结果,正常显示:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180608G1PKNJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券