好久不写 Python 代码,看到 Python 字符串之前的 u、r、b、f 瞬间蒙圈了。
从 Python3.5 以来,变化有点大了,需要努力学习了。
字符串前的 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()
函数的缩写的意思啦
目前尚无回复