您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:浅析Python字符串中的r和u的区别

51自学网 2022-02-21 10:45:46
  python
这篇教程浅析Python字符串中的r和u的区别写得很实用,希望能帮到您。

Python中字符串前面我们经常看到加r(R)或u/(U)的前缀,而这两个符号是什么意思呢?

1.r(R)

r意为raw,表示不包含转义字符的原生字符串。常见的转义字符包括下列几种:

转义字符 描述
/(在行尾时) 续航符
// 反斜杠符号
' 单引号(字符串需要为""形式)
" 双引号(需要字符串用需要为''形式)
/b 退格(Backspace)
/000
/n 换行
/v 纵向制表符
/t 横向制表符

下面是几个转义字符的演示:

print("Hello/,world")# Hello,worldprint("Hello//,world")# Hello/,worldprint("Hello',world")# Hello',worldprint('Hello",world')# Hello",worldprint("Hello/b,world")# Hell,worldprint("Hello/000,world")#Hello,worldprint("Hello/n,world")# Hello# ,worldprint("Hello/v,world")# Hello#      ,worldprint("Hello/t,world")# Hello   ,worldprint("Hello/020,world")

r前缀的作用就是告诉解释器,我这个字符串不包含转义字符,比如字符串中如果包含'/n',则不将其视为换行符,而视为一个'/'字符和'n'字符来处理。如下面所示:

print("Hello,/nworld")# Hello,# worldprint("Hello,/nworld")# Hello,/nworld

r前缀最常见的用途是正则表达式,因为正则匹配的模式经常包含各种反斜杠等字符,我们不希望它被解析为转移字符,因此需要加上'r'。

import restr_pat= re.compile(r'/d+//d+//d+')text = 'Today is 12/10/2021, yesterday is 12/11/2021'res = str_pat.findall(text)print(res)['12/10/2021', '12/11/2021']

2.u(U)

u(U)前缀表示字符串的编码方式为unicode。不仅包含中文在内的任意字符串都可以采用unicode编码。一般英文字符串在任何编码的情况下都能正常解析,所以一般不用显式添加u。然而中文最好要说明其编码,否则编码转换时就会出现乱码(比如本来用gbk编码但拿unicode来解码)。解决编码问题一劳永逸的方法是在.py的文件头添加如下内容:

# coding: utf-8

补充

字符串前加b

例: response = b'<h1>Hello World!</h1>'
python实现微信小程序反编译效果
OpenCV

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。