一文弄懂Python 字符串引号之前的 u、r、b、f 的作用
字符串前的 u
b = u'我喜欢你'
u 是 unicode 的缩写,它的作用是告诉解释器,后面的字符串以 unicode 格式进行编码,一般用于非 ASCII 字符,比如,我们的中文。
如果没有 u,基本上就会碰到烦人的编码问题了。
==============================================================
字符串前的 r
b = r"我\r\n喜欢\r\n你"
r 是 raw 的缩写,表示后面的字符串就不要使用 \ 转义了。
默认情况下,特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的 \n 表示换行,\t 表示 Tab等。 r' 的意思就是说 \n 是两个字符 \ 和 n,而不是一个换行符。
r 前缀一般用于正则表达式,也就是 re 模块
==============================================================
字符串前的 b
b = b'我喜欢你'
b 是 byte 的缩写,表示后面的字符串是 bytes 对象。
一般的网络编程中,传输协议是字节类型的,客户端和服务器端一般只认 bytes 类型数据,比如 send() 函数的参数和 recv() 函数的返回值。
在 Python3 中,bytes 类型和 str 类型的相互转换为
b = '我喜欢你'.encode('utf-8')
s = b.decode('utf-8')
==============================================================
字符串前的 f
print(f'{name} done in {time.time() - t0:.2f} s')
f 是 format 的缩写,表示后面的字符串支持大括号内的 python 表达式,其实就是 format() 函数的缩写的意思啦