avatar

python下r''、b''、f''、u''

r’’

转义字符以原样输出,不做转义字符识别。如\n,输出\n,不是换行符。

1
print(r'hahahahahahaha\n')

输出:

可以发现原样输出了\n

b’’

这里有python2和python3的区别。

在python3中,字符串的类型有strbytes

1
2
3
4
5
6
7
a = '111'
type(a)
# 输出str
type(a.encode())
# 输出bytes
type(a.decode())
# 输出str没有decode的方法

在python2中,字符串的类型有strunicode

1
2
3
4
5
6
7
a = '111'
type(a)
# 输出str
type(a.encode())
# 输出str
type(a.decode())
# 输出unicode

我们可以发现,python2中的str就是python3中的str.encode()后的,而python3中的str就是python2中str.decode()后的。也就是说,在两个版本中默认的str有如下关系。

因此,在python3中,b'111'等同于'111'.encode()

u’’

表示该字符串是unicode编码的,python3的默认编码方式就是unicode。

这里要说一下,unicode是一种标准,是字符集,符合这一标准的编码方式有utf-8、utf-16、utf-32等。

f’’

格式化字符串的输入方式,见下面的例子。

1
2
3
4
5
a = 'name'
b = '0pt1mus'

'my {} is {}'.format(a, b)
f'my {a} is {b}'

上面的两种格式化字符串都没有问题,但f''是不是更加方便呐。

文章作者: 0pt1mus
文章链接: https://superj.site/2020/02/18/20200218173211/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 0pt1mus

评论