1\ Python 中的多种进制表示:
1)十进制:
2)二进制:以0b或者0B开头
3)八进制:以0o或者0O开头
4)十六进制:以0x或者0X开头
2\ 数字赋值的时候可以接受下划线作为分隔符,1_234_567,也可以直接复制复数a+bj 即可
值得注意的是小数在内存中存储时二进制形式存储。小数点后面的部分在转化成二进制时很可能是一串无限循环的数字,无论如何都不能精确表示,所以小数的计算结果一般是不精确的。如需要极高的运算精度可以使用decimal模块,或者fractions模块
3\ 字符串编码,英语字母ASCII,中文字符GB2312。Unicode为统一码。主要编码方案分为三种,UTF-8,变长的编码方案,使用1-6个字节存储。UTF-32,固定长度的编码方案,始终4个字节存储。UTF-16,长度即固定又可变。
其中,字符集表示的是字符和二进制的关系。字符编码规定如何把字符的编号存储到计算机中。为了区分不同字符占用的字节数,需要经过一次转换后在存储到计算机中。读取的时候还要再逆向转换一次。
4\ bytes和string的对比区别
1)bytes只负责以二进制形式存储数据,至于具体数据的表示内容由程序解析方式决定。bytes简单记录内存中的原始数据。适用于互联网传输,网络通信,以及存储图片、音频、视频等二进制格式文件。
2)bytes和string在采用合适的编解码方式下可以相互转化。
3)实际应用过程中,如果string都是ASCII字符,直接在string前面加b前缀即可转换为bytes类。
4)string也可通过encode('UTF-8') 的形式转化为bytes,bytes通过decode('UTF-8')形式转化为string.
5\ 缓存机制,在python解释器启动时从内存里开辟了一小部分,用来存储高频使用的数据。可以提升整体的效率。以下为缓存重用的规则: