python3中字符串前缀加r/u/b的区别


最近从redis中取出的数据有b前缀,故此特地整理一番常见的前缀,以供回顾

1、加 u

因为python3中,解释器默认编码就是Unicode,因此不需要加u,此条 仅 适 用 于 p y t h o n 2 \color{red}{仅适用于python2} python2
意为字符串中数据使用unicode编码。防止因为源码储存格式问题,导致再次使用时出现乱码

python2: str -> decode -> Unicode -> encode -> str
python3: bytes -> decode -> s t r ( U n i c o d e ) \color{red}{str(Unicode)} str(Unicode) -> encode -> bytes

后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,

2、加 r

忽视字符串中的“特殊字符”,将其识别为一般字符。俗称去掉反斜杠的转义机制。常用于re模块
(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。 )

print("你\n好")  #你
                 #好
print(r"你\n好") #你\n好

3、加 b

’ b’ 表示这是一个 bytes 对象,指明后面字符串是bytes 类型。
网络编程中,服务器和浏览器只认bytes 类型数据。
如:send 函数的参数和 recv 函数的返回值都是 bytes 类型

print(b"\xe4\xbd\xa0\xe5\xa5\xbd")   # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b"\xe4\xbd\xa0\xe5\xa5\xbd".decode("utf8")')  # '你好'

注:
在 Python3 中,bytes 和 str 的互相转换方式是
str.encode(‘utf-8’)
bytes.decode(‘utf-8’) 或 str(bytes,“utf8”)

本文部分引用:
python中str和byte有什么区别呢?.
Python 字符串前面加u,r,b的含义

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值