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'
  • 相关阅读:
    筛选法求素数
    C/C++经典面试题目
    操作系统笔试面试基本内容
    Win32/MFC的基本概念
    STL采用的标准模板库
    数据结构基本概念
    SQL基础语句
    C/C++基础概念
    计算机网络基础概念
    流水作业 批作业调度
  • 原文地址:https://www.cnblogs.com/yzxing/p/8633592.html
Copyright © 2011-2022 走看看