美文网首页
python字符串前面加u,r,b的含义

python字符串前面加u,r,b的含义

作者: willstar | 来源:发表于2018-11-07 21:53 被阅读37次

u/U:表示unicode字符串

不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。

一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。

建议所有编码方式采用utf8

r/R:非转义的原始字符串

与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。而如果是以r开头,那么说明后面的字符,都是普通的字符了,即如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。

以r开头的字符,常用于正则表达式,对应着re模块。

b:bytes

python3.x里默认的str是(py2.x里的)unicode,  bytes是(py2.x)的str, b”“前缀代表的就是bytes

python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种写法

---------------------

作者:SmallisBig

来源:CSDN

原文:https://blog.csdn.net/u010496169/article/details/70045895

版权声明:本文为博主原创文章,转载请附上博文链接!

1、字符串前加 u   例:u"我是含有中文字符组成的字符串。"   作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。   PS:不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行。一般英文字符在使用各种编码下,,基本都可以正常解析, 所以一般不带u。但是中文有事会出现问题,就要想以前在学校上机敲代码时候一样,优盘一插,源码一拷贝,一打开,中文部分全成框框乱码了。。。贼尴尬。。。 2、字符串前加 r   例:r"\n\n\n\n\n\n”   作用:声明后面的字符串是普通字符串,相对的,特殊字符串中含有:转义字符 \n \t 什么什么的。   测试效果:      用途:一般用在 正则表达式、文件绝对地址、等等中。。。 3、字符串前加 b   作用:python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes      python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种写法

https://blog.csdn.net/ff55fff/article/details/77504575

字符串开头r b u f各含义:b'input\n' # bytes字节符,打印以b开头。输出:b'input\n'123r'input\n' # 非转义原生字符,经处理'\n'变成了'\\'和'n'。也就是\n表示的是两个字符,而不是换行。输出:'input\\n'123u'input\n' # unicode编码字符,python3默认字符串编码方式。输出:'input\n'123import timet0 = time.time()time.sleep(1)name = 'processing'print(f'{name} done in {time.time() - t0:.2f} s') # 以f开头表示在字符串内支持大括号内的python 表达式输出:processing done in 1.00 s1234567类似于f开头,大括号变量,:定义格式coord = (3, 5)'X: {0[0]}; Y: {0[1]}'.format(coord)'{0}, {1}, {0}'.format(*'abc') # unpacking argument sequence'a, b, a''Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')'Coordinates: 37.24N, -115.81W''{:,}'.format(1234567890)'1,234,567,890''Correct answers: {:.2%}'.format(points/total)'Correct answers: 86.36%'123456789101112131415str与bytes转换:'€20'.encode('utf-8')# b'\xe2\x82\xac20'b'\xe2\x82\xac20'.decode('utf-8')# '€20'1234s1 = '123'print(s1)print(type(s1))s2 = b'123'print(s2)print(type(s2))区别输出:123b'123'123456789101112 Python 2 将字符串处理为 bytes 类型。 Python 3 将字符串处理为 unicode 类型。 str转bytes: bytes('123', encoding='utf8') str.encode('123') bytes转str: str(b'123', encoding='utf-8') bytes.decode(b'123') --------------------- 作者:青盏 来源:CSDN 原文:https://blog.csdn.net/qq_16234613/article/details/79448203 版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

网友评论

      本文标题:python字符串前面加u,r,b的含义

      本文链接:https://www.haomeiwen.com/subject/zvmbxqtx.html