python字符串前缀 u和r的区别 python中字符串前的r什么意思

作者&投稿:圭习 (若有异议请与网页底部的电邮联系)

以r或R开头的python中的字符串表示(非转义的)原始字符串

python里面的字符,如果开头处有个r,比如:

(r’^time/plus/\d{1,2}/$’, hours_ahead)

说明字符串r"XXX"中的XXX是普通字符。有普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”
"表示换行,""表示Tab等。

而如果是以r开头,那么说明后面的字符,都是普通的字符了,即如果是“
”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。以r开头的字符,常用于正则表达式,对应着re模块。

以u或U开头的字符串表示unicode字符串

Unicode是书写国际文本的标准方法。如果你想要用非英语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。



在python2里面,u表示unicode string,类型是unicode, 没有u表示byte string,类型是 str。
在python3里面,所有字符串都是unicode string, u前缀没有特殊含义了。

r都表示raw string. 与特殊字符的escape规则有关,一般用在正则表达式里面。
r和u可以搭配使用,例如ur"abc"。

python字符串前缀 u和r的区别~

在Python2中,u是Unicode的编码,r是原始字符。例如:
u'你好' #这里是把‘你好’用Unicode编码r'
abdcdds' #这里加上r表示 把
abdcdds看做原始字符,忽略一切转意字符。下图是一个u的例子,从图中可以看出,加上u和不加u的区别显而易见:

需要注意的是,以上是在Python2.7.10中,如果是在Python3中,是有区别的。这是因为,Python 2里的Unicode字符串在Python 3里就是普通字符串而已,因为在Python 3里字符串总是Unicode形式的。

下图是一个r的例子,从图中可以看出,加上r和不加r的区别显而易见:

Python中,u表示unicode string,表示使用unicode进行编码,没有u表示byte string,类型是str,在没有声明编码方式时,默认ASCI编码。如果要指定编码方式,可在文件顶部加入类似如下代码:
# -*- coding: utf-8 -*-
utf-8是一种支持中文的编码格式。
字母前加r表示raw string,也叫原始字符串常量。一般用在一下两个方面:
1、正则表达式用于处理正则表达式时,规避反斜杠的转义

2、系统路径如下面的路径,使用r就防止了的转义

扩展资料:
python在执行代码是,所有的计算都会由内存进行,此时的编码格式是unicode,因为世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。为了统一编码格式,便于计算,就出现了unicode。