39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
# python3小白课:字节串
|
||
|
||
本节课所介绍的字节串(bytes)类型比较抽象一点,如果你无法理解掌握,可以先跳过,以后可以结合一些网上的资料再次学习。
|
||
|
||
这是python3新增的类型,byte表示字节,加个复数形式就当做串了。跟字符串类似,也是一串的内容,但是是以二进制来存储的。二进制可以用于网络传输数据,也可以存储各种二进制文件,如图片、音乐、视频、exe应用程序等。
|
||
|
||
字符串和字节串之间也可以相互转换,即把字符串弄成二进制表示了,后续更利于传输或者针对里面的内容更好的进行文本加密或解密,或编码,在这块更加方便一些。
|
||
|
||
有关字节串我们就不讲那么详细了,感兴趣的同学可以自行百度下相关知识,我们来看点简单的例子:
|
||
|
||
```python
|
||
# coding:utf-8
|
||
# 将字符串转为bytes类型,用utf8编码,不指定默认也是这个
|
||
a = b'Hello' # 这种方式只能支持仅含ascii字符的字符串,含有中文会报错
|
||
print(a)
|
||
# 后面这两种方式结果一致,等效,爱用哪个用哪个
|
||
a = bytes("Hello 小白", encoding='utf-8')
|
||
print(a)
|
||
a = "Hello 小白".encode('utf-8')
|
||
print(a)
|
||
# 将字节串解码回字符串,用utf8编码,不指定默认也是这个
|
||
b = a.decode("utf-8")
|
||
print(b)
|
||
# 也可以这样解码,还是爱用哪个用哪个
|
||
b = bytes.decode(a, encoding="utf-8")
|
||
print(b)
|
||
```
|
||
|
||
可以注意到字节串打印输出的时候前面有一个b开头修饰,并且二进制内容在遇到非ascii字符时可能会用十六进制表示法来表示并打印出来。
|
||
|
||
|
||
|
||
### 单词释义
|
||
|
||
| 单词 | 释义 |
|
||
| -------- | ------------------------------------------------- |
|
||
| bytes | 字节的复数形式,在python中翻译为字节串型 |
|
||
| encoding | 编码,encode的ing形式,encode为编码这个单词的原型 |
|
||
| decode | 解码 | |