python小数据池

一、python2和3的区别

    在python3中                      在python2中

    print('ab')方式打印内容()括号是必须要有的。        print 'ab' 可以加可以不加。

    只有range                        有range还有xrange(生成器)

    用户交换用input                      用户交换用raw_input

二、赋值:

    比较值是否相等。

       is:比较的是内存地址。

       id:比较的id是否相同。

       ==:比较两个值是否相等。

      li1 = [1,2,3]
      li2 = li1
      print(id(li1),id(li2)) 

      print(li1 is li2)

三、小数据池

    在小数据池里的,数字的范围在 -5 --- 256 之间。 

      l2 = 6
      l3 = 6
      print(id(l2),id(l3))    id相同

      l2 = 600
      l3 = 600
      print(id(l2),id(l3))    id不同

    在小数据池里,字符串:1.不能有特殊字符,2.s*20 还是同一个地址,s*21以后过都是两个地址。

      s1 = 'a' * 20

      s2 = 'a' * 20

      print(s1 is s2)  True

      s1 = 'a' * 21

      s2 = 'a' * 21

      print(s1 is s2)  False

    使用pycharm会不准,建议用终端尝试。列表、字典、元祖、集合没有这个概念。

四、bytes类型    

    1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
    2,文件的储存,传输,不能是unicode(因为unicode是32位太大)只能是utf-8 utf-16 gbk,gb2312,asciid等

    对于英文:

      str:表现形式:s = 'alex'

        编码方式:00000001 unicode

      bytes:表现形式:s = b'alex'

        编码方式:00000000 utf-8、gbk。。。。

    对于中文:

      str:表现形式:s = '中国'

        编码方式:00000010 unicode

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

        编码方式:00000010 utf-8、gbk....

    转换命令:  

        编码:encode   把str转换成bytes,unicode转换成utf-8或gbk  

        s = '中国'

        print(s.encode('utf-8'))

        print(s.encode('gbk'))

        s2 = b'alex'

        print(s2)

      

        解码:decode  把bytes,utf-8转换成unicode        

        s = '中国'
        b = s.encode()
        print(b)
        a = b.decode('utf-8')
        print(a)

        特别说明:如果内容都是英文,则解码时字符集可以随便输(或不输,默认UTF-8),因为英文都是ASICC码组成的。

posted @ 2017-12-21 19:19  2009_boy  阅读(479)  评论(0编辑  收藏  举报