一、代码块

    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'
 

《Python》 代码块、小数据池和编码转换的更多相关文章

  1. python学习笔记:第6天 小数据池和编码转换

    目录 1. id 和 == 2. 小数据池 3. 编码和解码 1. id 和 == id:id是一个内置的函数,可以查看变量存放的内存地址(实际上不是真正的物理地址,这里暂时这样理解),用于判断是变量 ...

  2. python 浅谈小数据池和编码

    ⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...

  3. 百万年薪python之路 -- 小数据池和代码块

    1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...

  4. Python基础篇 -- 小数据池和再谈编码

    小数据池 1. id() 通过id()可以查看到一个变量表示的值在内存中的地址 s = "Agoni" print(id(s)) # 2410961093272 2. is 和 = ...

  5. python基础之小数据池、代码块、编码和字节之间换算

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  6. python基础之小数据池、代码块、编码

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  7. 百万年薪python之路 -- 小数据池和代码块练习

    1.请用代码验证 "alex" 是否在字典的值中? info = {'name':'王刚蛋','hobby':'铁锤','age':'18',...100个键值对} info = ...

  8. python基础之小数据池,is和==区别 编码问题

    主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...

  9. python之路--小数据池,再谈编码,is和 == 的区别

    一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...

随机推荐

  1. fhq treap抄袭笔记

    目录 碎碎念 点一下 注意!!! 模板 fhq treap 碎碎念 我咋感觉合并这么像左偏树呢 ps:难道你们的treap都是小头堆的吗 fhq真的是神人 现在看以前学的splay是有点恶心,尤其是压 ...

  2. Mysql相关问题收集

    1.查询每个班级的前三名 DROP TABLE IF EXISTS `sc`; CREATE TABLE `sc` ( `id` ) NOT NULL AUTO_INCREMENT, `name` v ...

  3. poj3352 Road Construction & poj3177 Redundant Paths (边双连通分量)题解

    题意:有n个点,m条路,问你最少加几条边,让整个图变成边双连通分量. 思路:缩点后变成一颗树,最少加边 = (度为1的点 + 1)/ 2.3177有重边,如果出现重边,用并查集合并两个端点所在的缩点后 ...

  4. 使用Android-studio开发移动app与weex结合开发详细步骤

    详细步骤如下:   首先,确保机器已经安装了node.js,并且把npm更新到最新版本 下载完毕后,我们可以看到全局目录下的node_modules下面多出一个weex-toolkit 同时,我们留意 ...

  5. 阿里云Linux服务器初探

    阿里云Linux服务器初探 阿里云Linux服务器初探 因为钱包的关系,本人买了一个660元2年的1核1GB的小服务器(centos是Linux的发行版),在当初是用2核4GB(内存)的时候使用的是w ...

  6. 第五次程序设计作业 C++计算器雏形 调用文件输入输出

    一.C++计算器作业系列链接 第三次作业:C++计算器雏形 第三次作业附加:代码规范 第四次作业:命令行的调用及计算 MyGithub 二.本次作业相关 要求:第五次程序设计作业 根据这一次的作业要求 ...

  7. Kafka 及 PyKafka 的使用

    1. Kafka 1. 简介 Kafka 是一种分布式的.分区的.多副本的基于发布/订阅的消息系统.它是通过 zookeeper 进行协调,常见可以用于 web/nginx 日志.访问日志.消息服务等 ...

  8. python 将16进制转化为2进制

    >>> x='123abc' >>> b=bin())[:] >>> print(b)

  9. python 获取本地语言和编码的代码

    #! /usr/bin/env python # encoding=utf8 import locale language, encoding = locale.getdefaultlocale() ...

  10. myEclipse 下配置多个Tomcat

    1.进入perfomance 2. 进入server  右键点击configure server connector 3. 切换到 “Arguments” 面板,这里有 一个启动参数,就是修改一下路径 ...