Python中字符串前“b”,“r”,“u”,“f”,“l”的作用

文章目录

  • 1、字符串前加 u
  • 2、字符串前加 r
  • 3、字符串前加 b
  • 4、字符串前加 f
  • 5、字符串前加 “l”

1、字符串前加 u

例:u"我是含有中文字符组成的字符串。"

name = "中文字符".replace(u"中"," ")

作用:

前缀u表示该字符串是unicode编码,Python2中用,用在含有中文字符的字符串前,防止因为编码问题,导致中文出现乱码。另外一般要在文件开关标明编码方式采用utf8。

Python3中,所有字符串默认都是unicode字符串。

2、字符串前加 r

例:r"\n\n\n\n”  表示一个普通字符串\n\n\n\n,而不表示换行了。

作用:

去掉反斜杠的转义机制。

在普通字符串中,反斜线是转义符,代表一些特殊的内容,如换行符\n。前缀r表示该字符串是原始字符串,即\不是转义符,只是单纯的一个符号。

常用于特殊的字符如换行符、正则表达式、文件路径。

注意不能在原始字符串结尾输入反斜线,否则Python不知道这是一个字符还是换行符(字符串最后用\表示换行),会报错:

>>> print(r'C:\Program File\my\path''\')  
  File "<stdin>", line 1
    print(r'C:\Program File\my\path''\')
                                        ^
SyntaxError: EOL while scanning string literal

那如果是一个文件夹路径就是以\结尾怎么办呢,可以再接一个转义\的字符串:

>>> print(r'C:\Program File\my\path''\\')
C:\Program File\my\path\

或者

>>> print(r'C:\Program File\my\path'+'\\') 
C:\Program File\my\path\

注意:
在python的正则表达式中,为表示模块re要求的单个反斜杠,需要在字符串中书写两个反斜杠,让解释器对其进行转义。换而言之,这里包含两层转义:解释器执行的转义和模块re执行的转义。实际上,在有些情况下也可使用单个反斜杠,让解释器自动对其进行转义,但请不要这样依赖解释器。
如果你厌烦了两个反斜杆,可使用原始字符串,如r'python\.org'

3、字符串前加 b

例:response = b'Hello World!'

b' ' 表示这是一个 bytes 对象,用在Python3中,Python3里默认的str是unicode类。Python2的str本身就是bytes类。

作用:

b" "前缀表示:后面字符串是bytes 类型。

用处:

前缀b表示该字符串是bytes类型。

常用在如网络编程中,服务器和浏览器只认bytes类型数据。如:send 函数的参数和 recv 函数的返回值都是 bytes 类型。

附:
在 Python3 中,bytes 和 str 的互相转换方式是

str.encode('utf-8')
bytes.decode('utf-8')

4、字符串前加 f

import time
t0 = time.time()
time.sleep(1)
name ='processing'
print(f'{name} done in {time.time() - t0:.2f} s')

输出:

processing done in 1.00 s

Python3.6新加特性,前缀f用来格式化字符串。可以看出f前缀可以更方便的格式化字符串,比format()方法可读性高且使用方便。

而且加上f前缀后,支持在大括号内,运行Python表达式。

你还可以用fr前缀来表示原生字符串。

5、字符串前加 “l”

表示宽字符,unicode字符( unicode字符集是两个字节组成的。L告示编译器使用两个字节的 unicode 字符集) 如 L”我的字符串” 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。

不加时占用字节
strlen("asd") = 3; 
  
 加之后占用字节
strlen(L"asd") = 6;

参考文章:
https://blog.csdn.net/acktomas/article/details/119323913

版权声明:本文为博主作者:五月天的尾巴原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_49114503/article/details/134140643

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐