zoukankan      html  css  js  c++  java
  • python数据池,python3编码str转bytes,encode

    一、python2 python3的区别

      默认编码:2--ASCII码  3---UTF-8

      print:python2 可以不需要加括号(),python3必须加括号

      python2中有range,还有xrange--生成器,可转换成range;python3中只有range

      python2中的input,raw_input(); python3:input()

    二、

    1.  = 是赋值  == 是比较值是否相等  is也是比较,比较的是内存地址(看是不是一个东西)  id(内容) :内存地址

    # li1 = [1,2,3]
    # li2 = li1
    # li3 = li2
    # print(id(li1),id(li2))    改变一个,另一个也会改变

    2.数字,字符串---小数据池(节省内存)

    #数字,字符串 小数据池
    #数字的范围 -5 -- 256
    #字符串:1,不能有特殊字符
    #        2,s*20 还是同一个地址,s*21以后都是两个地址
    # i1 = 6
    # i2 = 6
    # print(id(i1),id(i2))    一样的
    # i1 = 300
    # i2 = 300
    # print(id(i1),id(i2))    不一样。pycharm显示一样是其影响,应在终端里操作。

    其他的:list dict tuple set 无数据池概念

    三、编码进阶

    ascii
                A : 00000010  8位 一个字节
    
    unicode     A : 00000000 00000001 00000010 00000100 32位  四个字节
                中:00000000 00000001 00000010 00000110 32位  四个字节
    
    
    utf-8      A :  00100000 8位 一个字节
              中 :  00000001 00000010 00000110 24位 三个字节
    
    
    gbk        A : 00000110  8位 一个字节
             中  : 00000010 00000110 16位 两个字节
    1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
    2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

    utf-8与gbk互相转化,需先转换成Unicode;

    py3:
      str 在内存中是用unicode编码。  问题:文件不能传输。(文件可理解成大字符串) 需转换成utf-8或gbk方式存储传输。

        bytes类型(数据类型的一种,跟字符串很像) 编码方式为utf-8或gbk或gb2312。

    所以要将str转为bytes

    对于英文:
        str :表现形式:s = 'alex'
            编码方式: 010101010 unicode
        bytes :表现形式:s = b'alex'
            编码方式: 000101010 utf-8 gbk。。。。

    对于中文:
        str :表现形式:s = '中国'
            编码方式: 010101010 unicode
        bytes :表现形式:s = b'xe91e91e01e21e31e32'  十六进制,人看不懂(三个字节一个中文)若两个字节表示一个中文,则时GBK
            编码方式: 000101010   utf-8   gbk。。。。

    如何将str转换成bytes类型?

    s1 = 'alex'
    # encode 编码,如何将str --> bytes, ()
    s11 = s1.encode('utf-8')
    s11 = s1.encode('gbk')
    print(s11)  #b'alex'
    s2 = '中国'
    s22 = s2.encode('utf-8')
    s22 = s2.encode('gbk')
    print(s22)
    s11 = s1.encode('utf-8')

  • 相关阅读:
    office excel无法打开超链接解决方法
    mysql默认的数据库介绍(还没看,找时间研究)
    mysql目录结构及配置文件
    springboot-actuator应用后台监控
    服务器端负载均衡和客户端负载均衡的区别
    Spring Cloud Eureka 自我保护机制
    HDU 4028 The time of a day (dp+离散化)
    HDU 3652 B-number(数位DP)
    HDU 2966 In case of failure
    HDU 3622 Bomb Game
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/11488196.html
Copyright © 2011-2022 走看看