0504Python基础,is == id

1,昨日内容回顾

    字典:

       增:

            dic['name'] = 'alex' 有则覆盖,无责添加

            dic.setdefault('name','wusir') 有责不变,无责添加。

       删:

            pop:dic.pop(键,'无此键值对') 有返回值,返回的是对应的值。

            popitem 随机删除。有返回值。

            clear 清空字典。

            del

            del dic['name']

            del dic 在内存级别,删除字典。

       改:

            dic['name'] = 'alex' 有则覆盖,无责添加

            update 将一个字典的所有键值对,覆盖添加到另一个字典。

            dic2.update(dic1)

       查:

            dic['name']

            dic.get('name1') 无此键默认返回None,可以设置返回值。

            for 循环。

    dic.keys() dic.values() dic.items()  返回的都是类似于list的数据类型,可遍历,没有索引。list(dic.keys())

3,is == id 小数据池

       is 内存地址是否相同

  赋值运算  == 比较数值相同

              name1 = 'alex'

    name2 = 'alex'

    print(name1 == name2)

       id 查询内存地址。

       小数据池。int str 在一定范围内,如果两个数值相同,为了节省内存,共用一个内存地址。

  int -5 ~ 256

  str :1,有非字母元素就不是小数据池。

  2, 单个字母* int(21)存在小数据池。剩下的类型 都不存在。

 

 4,编码二

    ASCII: 一个字符 1个字节表示(8位),数字字母特殊字符。

     unicode:万国码

        一个字符用四个字节表示》

        A:0000 0001 0000 0001 0000 0001 0000 0001

        中:0000 0001 0000 0001 0000 1001 0000 0001

     utf-8:

        a: 0000 0001

      欧洲:0000 0001 0100 0001

      亚洲:0000 0001 0000 0001 1100 0001

     gbk:国标

        a:0001 0001

        中:0000 0001 0000 0001

    1,不同的密码本之间的二进制是不能互相识别的,容易报错或者产生乱码。

    2,计算机的文件存储和传输都是0101010(gbk,utf-8,ascii,gb2312等)不能是unicode。

 

  with open('02 作业讲解.py',encoding='utf-8') as f1:
      print(f1.read(),type(f1.read()))
  name = "alex"
  name1 = b"alex"
  print(name,type(name))
  print(name1,type(name1))
  name = "中国".encode('utf-8')
  name1 = b"alex"
  print(name,type(name))
  print(name1,type(name1))
  str ---> bytes
  s1 = '中国'
  b1 = s1.encode('utf-8')  # encode 编码
  # b2 = s1.encode('gbk')
  # print(b1)
  # print(b2)
  s2 = b1.decode('utf-8') # decode 解码
  print(s2)
  utf-8 bytes  ---> gbk bytes
  s1 = b"alex"
  print(s1.capitalize())

 大前提:python3x,编码。

    数据类型:

        int

        str

        bytes :str 拥有的所有方法,bytes都有。

        bool

        list

        tuple

        dict

        set

 

    python3x 内存中的编码方式是unicode

        英文:

            str: 表现形式  name = "alex"

                 内部编码:unicode

             bytes:表现形式:name1 = b"alex"

                 内部编码:非unicode

     中文:

            str: 表现形式  name = "中国"

                 内部编码:unicode

             bytes:表现形式:b'\xe4\xb8\xad\xe5\x9b\xbd'

                   内部编码:非unicode

posted on 2018-05-04 19:24  kindle86  阅读(102)  评论(0编辑  收藏  举报

导航