对于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

就不一样了。

对于Python中RawString的理解(引用)的更多相关文章

  1. 对于Python中RawString的理解

    总结 1.'''作用: 可以表示 "多行注释" ."多行字符串" ."其内的单双引号不转义" 2.r 代表的意思是: raw 3.r 只对其 ...

  2. Python中的变量、引用、拷贝和作用域

    在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...

  3. python中的is判断引用的对象是否一致,==判断值是否相等

    python中的is判断引用的对象是否一致,==判断值是否相等 a = 10 b = 20 list = [1,2,3,4,5] print(a in list) print(b not in lis ...

  4. python学习(九)python中的变量、引用和对象的关系

    <Think In Java>中说到过"万事万物皆对象",这句话也可以用在Python中. 感觉Python中的变量有点像Javascript中的变量,是弱类型的,但是 ...

  5. Python中的传值和引用

    我写这个主要是给自己看,内容也就是便于自己理解,可能会不正确,但目前来看代码测试的结果是对的. python中一切皆对象. 当我们赋值时: a = 1 其实是先创建了一个整数常量1(也是一个对象,且已 ...

  6. python中自定义模块的引用

    在python中,实现能够在任何路径下都可以直接import,就必须将存放函数或类的文件添加到python的搜索路径. 其实很简单,主要步骤就是: import sys sys.path.append ...

  7. Python中List的append引用赋值问题处理

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...

  8. python中函数参数的引用方式

    值传递和引用传递时C++中的概念,在python中函数参数的传递是变量指向的对象的物理内存地址!!! python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方 ...

  9. Python中使用@的理解

    Python函数中使用@ 稍提一下的基础 fun 和fun()的区别 以一段代码为例: def fun(): print('fun') return None a = fun() #fun函数并将返回 ...

  10. 转载-对于Python中@property的理解和使用

    原文链接:https://blog.csdn.net/u013205877/article/details/77804137 重看狗书,看到对User表定义的时候有下面两行 @property def ...

随机推荐

  1. Web Uploader上传文件

    Web Uploader是百度提供的. 1:下载:http://fex.baidu.com/webuploader/(官方下载/示例) 2:使用Web Uploader文件上传需要引入三种资源:JS, ...

  2. 【OA致远】流程表单中选择集团角色

  3. OpenStack 虚拟机制作qcow2格式镜像

    虚拟机拍摄快照导出1.将虚拟机制作成镜像(即拍摄快照):2.利用该虚机的快照,创建一个快照卷,大小是根据快照的大小自动设置的:3.利用命令将快照卷 upload-to-image 到虚机的快照内 ci ...

  4. ubuntu64运行32位程序安装过程

    Ubuntu运行32位程序可以使用如下方法: 第一步: 确认你有一个64位架构的内核 你可以打开终端然后输入: dpkg --print-architecture 你将会看到像下面这样的内容: amd ...

  5. java stream map和 flatmap区别

    区别:map mapper返回R,flatMap mapper返回Stream<R> 官网解释 1,<R>Stream<R> flatMap(Function< ...

  6. fpga 通过vga模块使电脑显示图片

    对vga模块搞了好几天,vga接口时序不难,就是行计数,列计数,对应到每一个像素上去.这里我先把vga控制模块的程序付上.采用的是小梅哥的程序.屏幕是800X600,配置的时钟是40M.注意改变屏幕尺 ...

  7. Email Windows发送成功,Linux却发送失败的可能原因

    一.linux端口被禁用,通过telnet查看.(我这里没问题) 二.排查环境参数是否一致(我这里没问题) 三.查看jdk版本原因,因为jdk1.8有的版本禁用了ssl 参阅文档:https://bl ...

  8. ansible使用笔记:长期更新

    ansible使用笔记 ##将/home/system.sh文件拷贝到所有服务器的/home/system.sh ansible all -m copy -a "src=/home/syst ...

  9. feign远程调用接口报空指针

    今天对feign接口进行转移的时候再次启动一直报空指针,找了好久试了好多次才发现是没有对feign接口加注解 请一定要记得加自动注入的注解啊啊啊啊啊啊!!!!!!!

  10. c++官方网站汇集

    c++官方网站汇集 gcc官网: https://gcc.gnu.org/ c++参考手册: https://en.cppreference.com/w/cpp c++教程网站: https://ww ...