迷失补缺

1.Python内部字符串一般都是Unicode编码,代码中字符串额默认编码与代码文件本身的编码是一致的,所以要做一些编码转换通常要以Unicdoe作为中间编码进行转换,即将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码

  a.每8个位(bit)组成一个字节(byte)

  C.一个英文占用一个字节,也就是8个位。一个中文占用两个字节。

  D.一般位简写为小写字母“b”,字节简写为大写字母“B”.

  E.8bit=1Byte   1024Byte=1KB   2014KB=1MB  1024MB=1GB  1024GB=1T

isinstance(s, unicode)  检测是否为Unicode,如果是就返回True,不是就返回Flase

utf-8 : 3byte表示中文,1byte表示英文
1.内存固定使用unicod编码,unicode效率高  2个字节来表示 ,空间换时间
2.使用寿命编码往硬盘存,就用寿命编码去读
3.程序运行分两个间断, a,从硬盘读到内存 b.python解释器运行已经独到的内存的代码 
 
1、python2里的  str  bytes 没有明确区分,bytes 其实就是二进制流的格式
 只有Unicode 有encode方法,python3里内存的数据都是unicode格式

2.

3. 区分

4.Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。 

dict.setdefault(key, default=None)

5.str.format()方法

 

>>greens= dict(green=“#00800",olive="#80800",lime="#00FF00")
>> print("{green}{olive}{lime}".format(**greens))               #这里使用了映射拆分(**),个人理解也就是类似于非固定参数中的**kwargs 

#00800 #80800 #00FF00

6.字典内涵:   是一个表达式,同时也是一个循环如  file_sizes = {name:os.path.getsize(name) for name in os.lisdir(".")}

7.浅copy:复制的只是对象的引用,而非对象本身  dicet.copy() set.copy()

 深copy: 是对象引用的复制 生成一份新的  copy.deepcopy()
8.在反射运用中
hasattr方法,是不能反射类的私有方法 

9.lambda:函数通常用作key函数,或者用于函数必须作为参数传递的其他上下文中.

10.在对方法调用的时候,Python会自动提供第一个参数,---这个参数是对 对象自身的对象引用,我们必须在参数列表中包含这一参数,根据约定,这一参数称为self.

 所有的对象属性及方法属性,都必须由self进行限定,

11.在创建对象时(比如:P= Shape.Point()) ,其实内部是,首先调用特殊方法__new__()来创建该对象,之后在调用特殊方法__init__() 对其进行初始化.

 另外,执行上面语句后,Python会从Point.__new__()方法开始,由于我们没有重新实现这一方法,因为会在Point基类中搜索,

12.子类继承父类的时候。需要super().__init__函数, 因为以这种方式调用super()函数的效果是调用父类的__init__()方法. 

13.

请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。

 

和list比较,dict有以下几个特点:

 

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

 

而list相反:

 

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

 

所以,dict是用空间来换取时间的一种方法

 

posted @ 2016-12-05 10:21  所有的梦想都画在墙上  阅读(191)  评论(0编辑  收藏  举报