zoukankan      html  css  js  c++  java
  • 2.关于字符串

    关于字符串存储时的数据类型如图(无耻的盗了老师的图):

     

    一.首先在python2.x版本环境下

    1.在python2.x版本中:解释过程种遇到字符串会有两种类型解释

     (1)str类型:对应的是bytes数据,就是除了unicode的其他编码方式编码后的二进制数据 —> 其他国家语言

     (2)unicode类型:对应的是unicode数据,也就是unicode编码后的二进制数据 —> 都看得懂的通用语言

    2.str和unicode不要被迷惑,他们只是人为起的名字而已,而后面的代表这个类型会存成什么数据。都是二进制,只是类型不同,两者对应关系:

    unicode编码成bytes

    bytes解码成unicode

    所有bytes都是通过unicode编码而来的

     

    3.字符串在python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

    decode的作用是将其他编码的字符串转换成unicode编码。

    encode的作用是将unicode编码转换成其他编码的字符串。

    因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成相应的编码。必须与代码本身编码一致!

    二.在python3.x版本环境下

    (1)str类型:对应的是unicode数据,也就是unicode编码后的二进制数据 —> 都看得懂的通用语言

    (2)bytes类型:对应的是bytes数据,就是除了unicode的其他编码方式编码后的二进制数据 —> 其他国家语言

     总结:byes最终就是用来存储或传输用的,而unicode就是用来显示用的,将bytes转成明文。

    (3)在python里面明确的将字节跟字符分开了。

    三.内存指令。

    例如在python中定义一个变量 a=1

    a=1什么意思:开辟一块内存空间,python通过a对应的内存地址(门牌号)找到对应的值。

    a=2呢:开辟一块新的内存空间,而1会被某程序占用或者回收。 

     参考详细资料:http://www.cnblogs.com/yuanchenqi/articles/5956943.html  

  • 相关阅读:
    bzoj 4610 Ceiling Functi
    uva 01350
    uva 12075
    uva 01393
    uva 11038
    CF 496E
    CF 496D
    poj 3167
    hdu 4622
    spoj 7258
  • 原文地址:https://www.cnblogs.com/mrpengfei/p/6659950.html
Copyright © 2011-2022 走看看