python3xiaobaike_2020/chapter2/2-8 python3小白课:字节串.md
2025-04-20 23:22:14 +08:00

39 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 解码 |