zoukankan      html  css  js  c++  java
  • Python——基础数据类型(补充)

    1.基础数据类型汇总补充

    (1)小数据池

          为了节省空间,数字和字符串有,其他的没有【了解】

          数字:-5---256之间的数字共用一个内存地址

    #(1)i1 = i2  id(i1) == id(i2)
    i1 = 6
    i2 = 6
    print(id(i1),id(i2))    #id(i1)=1436311936 id(i2)=1436311936
    #(2)i1 = i2  id(i1) != id(i2)
    i3 = 300
    i4 = 300
    print(id(i1),id(i2))    #id(i1)=1683866035312,id(i2)=1683866623792

        字符串:

           不能含有特殊字符,aa和aa地址相同,aa+和aa+地址不同

           单个字符*数字(<=20)时同一个地址,多于一个字符/大于等于21则不是同一个地址

    (2)列表 list   

     (3)str和bytes区别

    s = 'alex's1 = b'alex'print(s,type(s))    #alex <class 'str'>print(s1,type(s1))  #b'alex' <class 'bytes'>
    
    s = '中国'
    print(s,type(s))
    s1 = b'中国'print(s1,type(s1))  #SyntaxError: bytes can only contain ASCII literal characters.

    2. 编码

      (1)ascii---python2

                     A:00000010 8位 一个字节

      (2)unicode

                       A:00000000 00000001 00000010 00000100 32位 四个字节

                    中:00000000 00000001 00000010 00000110 32位 四个字节

      (3)utf-8---python3          

              A:00100000 8位 一个字节         

              中:00000001 00000010 00000110 24位 三个字节

      (4)gbk---终端           

              A:00000110 8位 一个字节
              中:00000010 00000110 16位 两个字节
        <1> 各个编码之间的二进制不能互相识别,会产生乱码。
        <2> 文件的储存和传输不能是Unicode(只能是utf-8,utf-16,gbk,gbk2312,ascii等)

      (5)Python3中的编码

              str进行存储和传输之前,需要先将str(Unicode)转换成bytes(utf-8/gbk),再进行传输

              str 在内存中是用Unicode编码的
              bytes 和str很相似,唯一区别是编码方式不同

        对于英文:
            str: 表现形式:s = 'alex'
            编码方式:010101010 Unicode
            bytes:表现形式:s = b'alex'
            编码方式:000101010 utf-8 gbk...
        对于英文:
            str: 表现形式:s = '中国'
            编码方式:010101010 Unicode
            bytes:表现形式:s = b'xe91e91e01e21e31e32'
            编码方式:000101010 utf-8

        encode:编码Unicode--->gbk/utf-8,如何将str--->bytes(可以设置编码方式)

    # (1)英文
    s1 = 'alex'
    s11 = s1.encode('utf-8')
    print(s11)  #b'alex'
    s11 = s1.encode('gbk')
    print(s11)  #b'alex'
    
    # (2)中文
    s2 = '中国'
    s22 = s2.encode('utf-8')    #24位,3个字节,表示一个字符
    print(s22)  #b'xe4xb8xadxe5x9bxbd'
    s22 = s2.encode('gbk')      #16位,2个字节,表示一个字符
    print(s22)  #b'xd6xd0xb9xfa'

    3.  =、==、is、id

      (1)=  : 赋值
      (2)==:比较-----值是否相等
      (3)is :比较-----内存地址
      (4)id : 内存地址

    长得丑就应该多读书。我爱学习,只爱学习,最爱学习!
  • 相关阅读:
    NC 工具的使用教程
    centos7&redhat 之 firewalld 详细介绍配置
    rabbitmq&&erlang 安装
    centos7 rabbitmq 安装
    Centos7 Erlang Solutions 安装
    CentOS7 LVM添加硬盘及扩容
    Linux服务器上监控网络带宽的18个常用命令
    在PowerDesigner中自动生成sqlserver字段备注
    JS 验证URL
    GitHub上整理的一些工具【转载】
  • 原文地址:https://www.cnblogs.com/xc-718/p/9640655.html
Copyright © 2011-2022 走看看