str

python2与python3字符串的区别

帅比萌擦擦* 提交于 2019-12-05 22:06:02
python2 在 py2 中,有两种类型字符串:str 和 unicode。但严格的来说,str 并不是完全意义上的字符串,把它称作 字节码串 更合适。unicode 则作为真正意义上的 字符串 ,但定义时需要使用 u"" 去声明。有人可能会有疑问,字符串 在内存单元中也是以字节进行存储的,怎么能将他俩区别对待呢? 字符串 是一种 数据结构 。数据结构 = 原数据 + 数据描述(为了更容易理解),而字符串的 “数据描述” 即为何种字符集。 字节码 则是没有数据描述的。 py2 中,当我们读取 str 类型时,它只代表了一串数据,至于这串数据是何种编码,系统是不知道的,需要我们手动指定。而 unicode 类型,则存储的相应的字符集,系统在读取时便能根据此数据描述对数据进行识别和处理。 '\xc4\xe3\xba\xc3' 对计算机来说,就是 1 个字节的字节码串在一起。 u'\u4f60\u597d' 对计算机来说,则是每 2 个字节作为一个单位,去映射 unicode 字符集做运算。 当我们定义 str字符串 时,python 会根据我们当前的运行上下文:源文件 / cli 去设定 str 的字符集。比如我们在脚本开始处注释的 coding: utf-8 会将脚本中的 str 编码为 utf-8 的字节码串儿。 # -*- coding: utf-8 -*- import

Python 普通str字符串 和 unicode 字符串 及字符串编码探测、转换

泪湿孤枕 提交于 2019-12-05 22:05:49
本文研究时的环境是 CentOS release 6.4,内核版本2.6.32-358.el6.x86_64 ,python2.6.6 内容:关于字符串的两个魔术方法 __str__() 、__unicode__() 两个函数 str() 、unicode() 类型转换 encode 、decode 和编码探测 chardet、 cchardet 先看一下对象的两个魔术方法 第一个:object.__ str __( self ) Called by the str() built-in function and by the print statement to compute the “informal” str ing representation of an object. The return value must be a string object. 被 内建函数str() 和 print语句 调用,产生非正式的对对象的描述字符串。返回值必须是string对象(这里指的应该是 bytes object 字节对象) 第二个:object.__unicode__( self ) Called to implement unicode() built-in; should return a Unicode object. When this method is not

Python 字符串与unicode对象 关于与区别 encode、decode

假装没事ソ 提交于 2019-12-05 01:06:38
作者:shede333 主页:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847 版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][] #Python 字符串与unicode对象 关于与区别 encode、decode 作者:shede333 主页:http://my.oschina.net/shede333 版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][] 结合下面的文章的一点理解: python 中文乱码问题深入分析_python_脚本之家 python的str,unicode对象的encode和decode方法(转) - 不得闲 - 博客园 python编码问题_百度文库 ##字符串str: 是一个字节数组, 是对unicode对象,编码encode(utf-8,gbk,GB2312 等等)后的存储格式, 比如,str=‘哈哈’,文件头声明编码为UTF-8, 那么,str里面真正的内容为 '\xe5\x93\x88\xe5\x93\x88’ (可用print repr(str)来查看) 它仅仅是一个字节流