脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 对于Python中RawString的理解介绍

对于Python中RawString的理解介绍

2020-09-01 09:00Python教程网 Python

下面小编就为大家带来一篇对于Python中RawString的理解介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

总结

1、'''作用: 可以表示 "多行注释" 、"多行字符串" 、"其内的单双引号不转义"

2、r 代表的意思是: raw

3、r 只对其内的反斜杠起作用(注意单个 \ 的问题)

raw string 有什么用处呢? raw string 就是会自动将反斜杠转义。

?
1
2
3
4
5
6
>>> print('\n')
 
 
>>> print(r'\n')
\n
>>>

(注:出现了两个空行是因为 print() 会自动添加一个空行)

再举个例子:

?
1
2
3
4
5
6
7
>>> r'\\\\\\' == '\\\\\\\\\\\\'
True
>>> print('\\\\\\\\\\\\')
\\\\\\
>>> print(r'\\\\\\')
\\\\\\
>>>

上述就是raw string 的基本功能。

所谓的

?
1
2
3
4
print(r'''1
2
3
4''')

?
1
2
3
4
print('''1
2
3
4''')

效果一样的原因其实就在于

三引号内没有 \ 所以 r 英雄无用武之地

有一点要注意的是,raw string 并不能让诸如 print(r'\') 起作用。因为在编译时Python还是会尝试使用反斜杠来转义单引号,从而造成字符串没有终止的问题.

举例:

>>> print(r'C:\Windows\System32')

C:\Windows\System32

?
1
2
3
4
5
6
>>> print('C:\\Windows\\System32')
C:\Windows\System32
 
>>> print('C:\Windows\System32')
C:\Windows\System32
>>>

最后一行也可以生效的原因是,\W 和 \S 什么都不是。所以在这个例子中Python发现“无法转义”,所以就不做任何转义而直接打印转义符。但是:

?
1
2
3
4
5
6
>>> print('C:\Windows\System32\new')
C:\Windows\System32
ew
 
>>> print(r'C:\Windows\System32\new')
C:\Windows\System32\new

就不一样了。

以上这篇对于Python中RawString的理解介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐