浅学python

来源:互联网 发布:美国陆军头盔淘宝 编辑:程序博客网 时间:2024/05/16 15:03

1、python的发布比unicode标准要早,所以编码会有所问题。

      在2.x时,u'汉字'和‘汉字’表示的是不同的东西,第一个是unicode编码之后的每个字用2个字节(16进制)表示的2个字符串(unicode一般用2个字节表示)u'\u6c49\u5b57' 长度的形式。第二个是直接将每个汉字用utf-8编码生成对应的3个字节表示的6个字符串(utf-8一般用3个字节表示汉字)'\xe6\xb1\x89\xe5\xad\x97'  长度的形式。当然如果用encode编码成gb18030或2312之类的形式,那每个汉字就只有2个字节,即字符串 '\xba\xba\xd7\xd6' 长度是(16进制表示的)4。

      在3.x时,上面两种形式相同并且直接会以汉字形式显示。

2、list = []和tuple = ()有向序列的比较

       除了表示形式和tuple没有append、insert这些方法不同外,list更自由灵活,tuple更安全,因为list提供多种对数据的操作,而tuple是不能修改已确定的元素的值的,因为tuple对某一个元素的指向是不变的,但是tuple中某个元素被定义成list类型时,其值是可改的,因为tuple对该元素的指向是没变的(tuple在该位置存储的list的指针)。另外tuple要定义一个元素的列表时必须加逗号,如(1,)否则会被解释成一个语法块。

3、python要支持中文得申明编码,如# -*- coding: utf-8 -*-  或    #coding=utf-8放在文件头就行了。

4、dict字典即map,存储的键值对;set存储的是键值,存储类型不定。dict字典和set集合都不能存储键值变化的值,所以像list[],dict{}就不能存储,但是tuple可以存储的,因为指向不变。

      dict速度快,但浪费空间,因为映射造成不在同一页之类的等

      set元素都不重复的,可以添加,但是无意义

0 0
原创粉丝点击