1. 引导
- python运行方式
- 进制
- 计算机单位
- 编码
2. python运行方式
脚本式
- 代码书写
交互式
- 代码测试
- pycharm Terminal
3. 进制
- 二进制
- 八进制
- 十六进制
3.1 进制转换
10 进制 整型存在
2,8,16进制,以字符串存在
- 十进制转二进制,八进制,十六进制
bin(16) 0b10000
oct(16) 0o20
hex(16) 0x10
- 二进制,八进制,十六进制转十进制
int(’0b’,base=2)
4. 计算机单位
b
Byte
KB
MB
GB
TB
PB
EB
ZB
YB
BB
NB
DB
mbps(mega bit per second)
1mb(1 mega byte ) = 1024 kbyte
5. 编码
ascii
- 编码与系统二进制一一对应
- 总共2**8=256位 0-255
- 65A 90Z
gbk
- gb-2312 1980
- gbk 包含2w+编码 1995
- 单字节兼容ascii
- 双字节代表文字,2**16=65536种可能
unicode 万国码
- ucs2 2**16
ucs4 2**32
不足补0
- ucs4是ucs2的超集,比如emotion 12w+ ucs4才可以被表示
- 内存中使用unicode,网络传输则不会
utf-8
- 师承unicode,通过压缩unicode来实现,通过判断表中的十六进制来压缩
范围判断 转换模板
0000~007F 0xxxxxxx
0080~07FF 110xxxxx 10xxxxxx
0800~FFFF 1110xxxx 10xxxxxx 10xxxxxx
10000~10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
比如'武' 十六进制在'6B66' 转二进制在 110101101100110 判断范围在三位(0800~FFFF),套入模板 11100110 10101101 10100110
- 字节 b
# 内存中unicode-utf-8(压缩),以字节形式存储于网络或硬盘中
name = 'alex大王'
data = name.encode('utf-8')
#data = name.encode('gbk')
#写入文件
f = open('1.txt',mode = 'wb')
f.write(data)
f.close()
# utf-8 汉字占用三位,gbk占用两位