一、代码块

    Python程序是由代码块构造的。块是一个python程序的文本,他是作为一个单元执行的。

    什么是代码块:一个py文件,一个函数,一个文件,一个类都是一个代码块。

    作为交互方式输入的每一行都是一个代码块。

二、id is ==

    id是内存地址,在内存中,id都是唯一的如果两个变量指向的值得id相同,就证明在内存中是同一个。

    is判断的是两个变量的id值是都相同,如果is是True,==一定是True。  

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

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

    目的:节省内存、提高性能与效率

    小数据池应用的数据类型:整数,字符串,bool值

      数字:-5~256的整数

      bool值:就是True,False,无论你创建多少个变量指向True,False,那么他在内存中只存在一个。

      字符串:       

        1,字符串的长度为0或者1,默认都采用了驻留机制(小数据池)。

    

        2,字符串的长度>1,且只含有大小写字母,数字,下划线时,才会默认驻留。

     

        3,用乘法得到的字符串,分两种情况。

          1. 乘数为1时:

            仅含大小写字母,数字,下划线,默认驻留。

    

            含其他字符,长度<=1,默认驻留。

          

            含其他字符,长度>1,默认驻留。

          

          2. 乘数>=2时:

            仅含大小写字母,数字,下划线,总长度<=20,默认驻留。

          

      4,指定驻留。  

        from sys import intern
        a = intern('hello!@'*20)
        b = intern('hello!@'*20)
        print(a is b)
        #指定驻留是你可以指定任意的字符串加入到小数据池中,让其只在内存中创建一个对象,多个变量都是指向这一个字符串。

    满足以上字符串的规则时,就符合小数据池的概念。

四、编码   

    编码之间不能互相识别

    网络传输或者硬盘存储的010101,必须是以非uniconde编码方式的010101.(因为Unicode太占资源了,避免资源浪费和网络堵塞)

    大环境python3x:

      str:内存(内部)编码方式为unicode

      bytes:python的基础数据类型之一,和str相当一双胞胎。

      区别:

        英文字母:

          str表现形式:s1='alex'   内部编码方式:unicode

          byte表现方式:s1=b'alex' 内部编码方式:非unicode

        中文:          

          str表现形式:s1='太白'   内部编码方式:unicode

          byte表现方式:s1=b'\xe5\xa4\xaa\xe7\x99\xbd'   内部编码方式:转换为utf-8

      转换:

        中文用encode只能转换为utf-8和gbk,英文可以转换成任意编码

        name = '太白'
        name = name.encode('utf-8')
        print(name)  #b'\xe5\xa4\xaa\xe7\x99\xbd'
        name = '太白'
        name = name.encode('gbk')
        print(name)  #b'\xcc\xab\xb0\xd7'
 

最新文章

  1. (转)Sqoop中文手册
  2. sql:劳务统计各分公司管理费用明细合计(等同汇总报表)
  3. NYOJ 77 开灯问题
  4. extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。
  5. 【风马一族_windom】 批量修改相同文件类型的后缀
  6. Cocoa框架中的内存分区
  7. (转)Android调用系统自带的文件管理器进行文件选择并获得路径
  8. 构建自己的Java并发模型框架
  9. (困难) CF 484E Sign on Fence,整体二分+线段树
  10. SpringMVC 自定义全局日期转换器
  11. C#多线程的用法3-线程间的协作Join
  12. ----------- Rootkit 核心技术之绕过 IopParseDevice() 调用源检测逻辑 ---------------
  13. STL-Deque 源码剖析
  14. C语言常用的编程规范
  15. ToroiseSVN和VisualSVN-server的配置使用, 外网访问SVN 版本库
  16. NET Core微服务之路:再谈分布式系统中一致性问题分析
  17. 用secureCRT操作ubuntu终端
  18. Docker for Windows 代理设置(linux container)
  19. mysql中建立索引的一些原则
  20. 题解——loj6277 数列分块入门1(分块)

热门文章

  1. Wireshark 显示域名列
  2. html5标签 H5标签
  3. left join联查提高执行性能
  4. 《A_Pancers》第二次作业 基于Android系统的音乐播放系统项目开题报告
  5. java基础深入解析基本类型
  6. 51nod 1682 中位数计数(前缀和)
  7. C#中的约束类型
  8. R—读取数据(导入csv,txt,excel文件)
  9. [.NET开发] NPOI导出
  10. 10X Genomics vs. PacBio