is 和 == 的区别

小数据池

  数字小数据池的范围是  -5~256

  字符串中如果有特殊字符,他们的内存地址就不一样

  字符串中的单个字符*20以内他们的内存地址一样,单个*21以上内存地址就不一致

  黑框框 == 终端

  a = 'alex@'

  a1 ='alex@'

  print(a is a1)    False

  

  n= n //2

  n1= 2

  print(n is n1)    True

  

  a = 'a'*21

  b ='a'*21

  print(a is b)    False

  a = 'aaaaaaaaaaaaaaaaaaaaaaaa'

  b = 'aaaaaaaaaaaaaaaaaaaaaaaa'

  print(a is b)    True

  n = -6

  n1 = -6

  print(n is n1)    False

  

  n = -5

  n1 = -5

  print(n is n1)    True

  n = 257

  n1 = 257

  print(n is n1)    True (在pycharm中判断是对的)

总结

  == 比较    比较的是两边的值

  is 比较    比较的是内存地址   id()

编码和解码

ascii 码:

               不支持  中文

               支持    英文  数字  符号

               8位      一个字节

         gbk码  国标:

               支持  中文,英文,数字,符号

               英文  16位   二个字节

               中文  16位   二个字节


         unicode  万国码

                支持  中文,英文,数字,符号

                英文  32 位  四个字节

                中文  32位   四个字节


         utf-8   长度可变的万国码 最少用8位

                英文   8位    一个字节
                中文   24位   三个字节


         Python3中 程序运行阶段 使用的是unicode   显示所有的内容

         bytes类型

            传输和存储都是使用bytes

         pycharm 存储的时候默认是使用utf-8

总结

  

is 和 == 区别

        is  比较内存地址

                id()   ---- 获取内存地址

                小数据池:

                    数字的小数据池范围是 -5 ~ 256

                    字符串:

                        字符串中不能包含特殊符号   + - * / @ 等等
                        字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致

        注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址

        ==  比较俩边的值

    编码和解码

        encode(编码方式)     ---- 拿到明文编码后对应的字节

        decode(编码方式)     -----将编码后的字节解码成对应的明文

    注意: 用什么进行编码就要什么进行解码  不然后会懵逼!

原文地址:https://www.cnblogs.com/anfusong/p/9410301.html