Python之基本数据类型

可变数据类型:列表,字典,集合

不可变数据类型(一创建,不能修改):整型,元组,字符串

字符编码:

  ASCII编码。最多只能用8位来表示一个字节。ASCII编码最多只能表示255个符合。

  GB2312和GBK和GB18030。支持中文。

  Unicode万国码。搞全有。utf-32 = 4字节   utf-16 = 2字节   utf-8 = 8bits 可变长编码,英文一个字节,中文三个字节

  二进制位=bit(位)(最小表示单元)

  8bit = 1byte(字节)(最小存储单元)

    bytes    字节类型  (二进制类型)就是一个8bits的字节

        所有的字符要存到内存里,硬盘里,都是bytes格式。

        在py2中,看到的字符串都是bytes。str == bytes数据

                        Unicode == Unicode编码后二进制数据

        在py3中, str == Unicode

             bytes == bytes数据

  在字符编码的转换过程是:先解码,decode,再编码,encode。

  所有的字符存在内存中,硬盘里,都是bytes类型。

   在Python2中,看到的字符串,都是bytes。

  

   字节数据和Unicode数据的区别:

                print(repr())打印编码

                字节数据:x 开头

                Unicode数据:u 开头

name = "George"
name2 = b'Hello'   #字节数据

print(type(name.encode('GBK')))    #编码
print(type(name2.decode('utf-8')))  #解码 

  在Python2里,字节类型的数据可以和Unicode类型的数据,进行字符串拼接。

  在Python3里,两种不同的字节类型,不能进行拼接操作。

Python3 不同字节类型的数据进行拼接的报错信息:

TypeError: must be str, not bytes

注意点:

    1、Unicode,utf-8,GBK 都是编码规则。

    2、为什么内存存储Unicode。

    3、程序执行前后的两个状态。

进制转换:

    值      8  4  2  1

    二进制位   0  0  0  0  

  二进制:0 1

  八进制( Oct ):0 1 2 3 4 5 6 7

  十进制():0 1 2 3 4 5 6 7 8 9

  十六进制( 0x(前缀)或BH(后缀) ):0 1 2 3 4 5 6 7 8 9  A   B   C   D   E   F

                              10  11   12  13  14  15

原文地址:https://www.cnblogs.com/george92/p/7363660.html