python全栈day6

一. is == id


  1)一个等于是赋值运算
  2)两个等于是比较运算,比较的是数值相同
  3)id()是一个元素的内存地址,在内存中ID都是唯一的,如果两个变量指向的id值相同,证明他们在内存中就是同一个值
  4)is 用于判断两边元素的id值是否一样,如果is是True,那么==肯定是True。


二. 代码块


Python中真正定义的代码块,是一个Python的文本,代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块
在交互界面(cmd)每一行都是一个代码块。


三. 小数据池(缓存机制,驻留机制)


小数据池是Python对内存做的一个优化。它将-5~256的整数,以及一定规则的字符串,提前在内存中创建了个池,容器里固定的放了这些数。

小数据池内只包含英文字母,数字及特殊字符组成的值。
  目的:
  1.节省内存
  2.在内存级别提高性能与效率
  分类以及范围:
  1.int:-5~256
  2.str:
    字符串长度为0 or 1,默认采用小数据池(中文字符串不算在内)
    字符串长度大于1,只有在字符串内只包含数字字母下划线时,默认采用小数据池
  3.bool
    布尔值始终保存在小数据池内
  补充:
   如果在一个代码块内,多次出现初始变量赋值的情况时,如果值没有在小数据池内,在这个时候内存会以一个字典的形式,将变量名和值对应起来,如果下次初始变量赋值时,若小数据池内没有该值的内存地址,就会查询这个类似字典的容器,如果可以找到该值,那么新变量名也会指向这个内存地址,否则创建一个新的内存地址,并将对应关系存在类似字典的容器中。


四. 编码升级


  1.不同编码之间不能互相识别
  2.网络传输,或者硬盘传输的010101,必须是以非Unicode的编码方式的010101传输或者存储。

  大环境Python3x:
   str:内存(内部)编码方式为Unicode
   其余的类型:内存编码方式都是utf-8
  引入bytes数据类型的概念
   bytes类型和字符串类型是类似关系,字符串类型的内置函数在bytes类型都可以使用。
   而区别是bytes类型没办法以b'中文字符串'的类型存储中文数据,只有字符串可以,并且bytes类型的内存编码方式不是Unicode,所以当字符串需要进行网络传输和存储时必须进行编码,就是把Unicode->其他编码方式进行操作。
  编码及解码:
   str->bytes encode 编码
   bytes->str decode 解码

posted @ 2018-08-09 15:07  AbnerLing  阅读(100)  评论(0)    收藏  举报