对于Python中RawString的理解

总结

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

2、r 代表的意思是: raw

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

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

>>> print('\n')

>>> print(r'\n')
\n
>>>

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

再举个例子:

>>> r'\\\\\\' == '\\\\\\\\\\\\'
True
>>> print('\\\\\\\\\\\\')
\\\\\\
>>> print(r'\\\\\\')
\\\\\\
>>>

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

所谓的

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

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

效果一样的原因其实就在于
三引号内没有 \ 所以 r 英雄无用武之地

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

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

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

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

就不一样了。

最新文章

  1. c++编译错误提示及解决
  2. 【转】每个人应该知道的NVelocity用法
  3. java之RTTI和反射的理解
  4. UML开始,OOA与OOD以及一个网站
  5. 软件工程 speedsnail 第二次冲刺3
  6. JForum 2.19源码部署到eclipse
  7. poj1274 匈牙利算法 二分图最大匹配
  8. Eclipse Memory Analysis进行堆转储文件分析
  9. Entity Framework系列文章导航
  10. c#变量在for循环内声明与外的区别
  11. PL/SQL联系oracle成功可以sql解决的办法是检查表的名称无法显示
  12. [Unity]蓝鸥Untiy-RPC-Sample
  13. BSA Network Shell系列-nexec | runcmd | runscript | scriptutil的异同
  14. linux iptables扩展,脚本防火墙
  15. Android破解学习之路(九)—— 练手破解游戏集合
  16. SVN-Failed to run the WC DB work queue associated with
  17. Elasticsearch(单节点)
  18. python使用sax实现xml解析
  19. django模型中的关系对应
  20. LG3809 【模板】后缀排序

热门文章

  1. 【剑指Offer】【链表】链表中倒数第k个结点
  2. JS学习-从服务器获取数据
  3. bootstrap-treeview手动修改源码添加与后台交互的id
  4. 记一次在MyBatis-Plus中 @TableField 自动填充中遇见的坑
  5. go 镜像输出一个树 mac模式
  6. DEV GridControl 主从表 (层次表)
  7. TypeScript 合并以及删除数组数据
  8. string 截取分割定位
  9. Redis基础命令和持久化
  10. Linux-非Root用户-配置深度学习环境