zoukankan      html  css  js  c++  java
  • python 的基础 学习 第七天 is id 编码的补充

    1,==

    两个等号比较的是数值,is比较的是内存地址。print(id())查看的内存地址。

    小数据池只存在于数字与字符串中,数字   是 -5^^256,是为了节省空间。

    字符串1,如果含有特殊字符,不存在小数据池,单个字符串('a')*int   int>20不存在于小数据池

    其他都不存在小数据池。

    is 比较的是id 地址print(a is  b)

    2,数据类型byte与str字符串的操作方法一样。

         1,编码之间的二进制互不识别

         2,存储和传输是010101。但不能是Unicode的二进制。

    3,python3x中的str在内存中的编码是unicode,python3x中的字符串不能直接存储和传输。

    4,


    python3x 中的编码:
        python3x 中 str 在内存中的编码方式是unicode。python3x 中的str不能直接存储,和发送。
        bytes 他的编码方式是非unicode(utf-8,gbk,gb2012.....)。

        对于英文:
            str: 表现形式:s = 'laonanhai'
                  内部编码:unicode
            bytes:
                  表现形式:s = b'laonanhai'
                  内部编码:非unicode.
        对于中文:
            str: 表现形式: s = '中国'
                  内部编码:unicode
            bytes:                  00000001
                  表现形式:s1 = b'xe4xb8xadxe5x9bxbd'
                  内部编码:非unicode.

     5,是由 unicode编码成utf-8的byte类型。

    s = '中国'
    s1 = s.encode('utf-8')
    print(s1)
    #b'xe4xb8xadxe5x9bxbd'
    由 unicode 编码成 gbk 的byte类型
    s = 'alex'
    s2 = s.encode('gbk')
    print(s2)#b'alex'

    由 utf-8 解码成unicode

    s = 'alex'
    s1 = s.encode('utf-8')
    s2 = s.encode('gbk')
    s3 = s1.decode('utf-8')#decode解码
    print(s3)

    由gbk 先转化成unicode 再变成utf-8

    s = 'alex'
    s1 = s.encode('gbk')
    s2 = s1.decode('gbk').encode('utf-8')#由gbk 先转化成unicode 再变成utf-8
    print(s2)#b'alex'
  • 相关阅读:
    HDU4513 吉哥系列故事——完美队形II Manacher算法
    POJ3974 Palindrome Manacher算法
    POJ1674 Sorting by Swapping 置换群
    100个著名初等数学问题[转载]
    POJ1026 Cipher 置换群
    FOJ1977 Pandora adventure 插头DP
    HDU1964 Pipes 插头DP
    POJ1286 Necklace of Beads polya计数
    Manacher算法O(n)回文子串算法[转载]
    POJ3270 Cow Sorting 置换群
  • 原文地址:https://www.cnblogs.com/yzxing/p/8633592.html
Copyright © 2011-2022 走看看