浅析python字符串前加r、f、u、l 的区别
先给大家介绍下Python字符串前面加u,r,b,f的含义(字符串前缀)
1、字符串前加u
例:u"我是含有中文字符组成的字符串。"
作用:
后面字符串以Unicode格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。
2、字符串前加r
例:r"\n\n\n\n”#表示一个普通生字符串\n\n\n\n,而不表示换行了。
作用:
去掉反斜杠的转移机制。
(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。)
应用:
常用于正则表达式,对应着re模块。
3、字符串前加b
例:response=b'
HelloWorld!
' #b''表示这是一个bytes对象作用:
b""前缀表示:后面字符串是bytes类型。
用处:
网络编程中,服务器和浏览器只认bytes类型数据。
如:send函数的参数和recv函数的返回值都是bytes类型
附:
在Python3中,bytes和str的互相转换方式是
str.encode('utf-8') bytes.decode('utf-8')
4、字符串前加f
importtime t0=time.time() time.sleep(1) name='processing'
#以f开头表示在字符串内支持大括号内的python表达式 print(f'{name}donein{time.time()-t0:.2f}s')
输出:
processingdonein1.00s
下面介绍下python字符串前加r、f、u、l的区别
f-strings是指以f或F开头的字符串,其中以{}包含的表达式会进行值替换。(目前支持python3.6版本)
下面看下f-strings的使用方法
基本使用(作用:替换值)
>>>name='xiaoming' >>>age=18 >>>f"hi,{name},areyou{age}" #结果如下 'hi,xiaoming,areyou18' >>>F"hi,{name},areyou{age}" 'hi,xiaoming,areyou18'
在字符串前加r可防止字符串转义
作用:没有转义特殊或不能打印的字符。
>>>s='abc\nabc' >>>s 'abc\nabc' >>>prints abc abc >>>s=r'abc\nabc' >>>s 'abc\\nabc' >>>prints abc\nabc
u/U:表示unicode字符串
不是仅仅是针对中文,可以针对任何的字符串,代表是对字符串进行unicode编码。
一般英文字符在使用各种编码下,基本都可以正常解析,所以一般不带u;但是中文,必须表明所需编码,否则一旦编码转换就会出现乱码。建议所有编码方式采用utf8
字符串前加“l”
表示宽字符,unicode字符(unicode字符集是两个字节组成的。L告示编译器使用两个字节的unicode字符集)如L"我的字符串"表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。
不加时占用字节 strlen("asd")=3; 加之后占用字节 strlen(L"asd")=6;
到此这篇关于浅析python字符串前加r、f、u、l的区别的文章就介绍到这了,更多相关python字符串r、f、u、l内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!