python摸爬滚打之day06----小数据池、编码解码
1、小数据池
代码块: 一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域.
在cmd命令行执行python时,每一条代码就是一个代码块;
在pycharm中执行文件时,每一个.py文件就是一个代码块.
is: 判断的是两者的内存地址是否一致. print(id(变量)) ----> 查内存地址
==: 判断两者值是否一致.
小数据池: 一种缓存机制, 可以快速地创建字符串对象, 以减少内存的浪费 (只针对整数, 字符串, bool).
在python中对-5到256之间的整数会被驻留在内存中, 并将一定规则的字符串缓存. 在使用时, 内存中只会创建一个给数据的对象, 保存在小数据池中. 当使用的时候直接从小数据池中获取对象的内存引用, 而不需要创建一个新的数据, 这样就会节省更多的内存区域.
对于整数: -5 到 256
对于字符串: 只针对含有字母,数字,下划线式并且字符长度不大于20的字符串会缓存(汉字不会缓存).
2、编码解码
ASCII(含数字,字母和特殊字符) : 8位 1字节
gbk(国标码,含有6w多个汉字): 16位 2字节
Unicode(万国码): 32位 4字节 (太长不适合传输和保存)
utf-8(可变长度的unicode): 24位 英文1字节, 欧洲文字2字节, 中文3字节 (适合传输和保存)
在python 3的内存中,用的是unicode, 在python 2中用的是ASCII.
程序在运行的时候, 使用的是unicode编码方式, 因为unicode是万国码, 什么内容都可以进行显示, 在数据传输和存储时候, 则以 utf-8 的形式进行存储, 省内存.
encode()和decode()
bs = b'\xc2\xed\xbb\xaf\xcc\xda' # GBK编码
b = bs.decode("GBK")
bss = b.encode("utf-8")
print(bss)
编码解码
python摸爬滚打之day06----小数据池、编码解码的更多相关文章
- python之路(内存,小数据池,编码等)
代码块: python真正的代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 但是,在python终端交互模式下,每一条代码都是一个代码块 python在同一个代码块中的变量,初始化对象 ...
- python之路---06 小数据池 编码
二十二.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有 ...
- is ==小数据池编码解码
== 比较 比较的是两边的值 is 比较 比较的是内存地址 判断两个东西指向的是不是同一个对象 取内存地址 id() 小数据池 ...
- day06——小数据池、深浅拷贝、集合
day06 小数据池 小数据池--缓存机制(驻留机制),只是一种规格,不会实际的开辟一个空间 == 判断两边内容是否相等 ***** # a = 10 # b = 10 # print(a == b) ...
- Python基础知识(六)------小数据池,集合,深浅拷贝
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : 一个文 ...
- python 全栈开发,Day6(is,小数据池,编码转换)
一.is a = 100 b = 100 print(a == b) print(a is b) 执行输出: TrueTrue 查看内存地址,使用id函数 print(id(a)) print(id( ...
- day06 小数据池,再谈编码
今日所学 一. 小数据池 二. is 和==的区别 三. 编码的问题 一.小数据池的作用 用来缓存数据 可以作用的数据类型: 整数(int), 字符串(str), 布尔值(bool). 什么是块 ...
- Python基础学习Day6 is id == 区别,代码块,小数据池 ---->>编码
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...
- python:id与小数据池与编码
一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相 ...
- python --- 06 小数据池 编码
一.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有不同 ...
随机推荐
- Spring 3 Java Based Configuration with @Value
Springsource has released the Javaconfig Framework as a core component of Spring 3.0. There is a tre ...
- .NET中进行Base64加密解密
方法一: /// <summary> /// Base64加密 /// </summary> /// <param name="Message"> ...
- [Artoolkit] ARSimpleNativeCarsProj for Multi Markers Tracking
效果简直了,但代码架构有点坑,慢慢道来. libc++_shared.so应该是c++的库:libARWrapperNativeCaresExample.so也有对应的c++文件:那么,libARWr ...
- 【中间件安全】IIS7.0 安全加固规范
1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
- 技巧:Vim 的纵向编辑模式
https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/ 开始之前 人类大脑对文字的处理是平面式的,所以我们浏览文章.查找资料或者重构代码 ...
- 开源库RxJava、ButterKnife
1. 简介 RxJava "RxJava is a Java VM implementation of Reactive Extensions: a library for composin ...
- C# Post HTTP Request
using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Secu ...
- AutoFac记录
概念 Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等: ContainerBuilder:将组件注册成服务的创建者. 组件:Lambda表 ...
- 字符集和编码——Unicode(UTF&UCS)深度历险
计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因为那时只需要存下一些英文字母和符号.后来虽然扩展到 ...
- ThinkPHP框架 基础 链接数据库
在第一次成功访问应用入口文件的时候,会显示出一个系统默认的欢迎页面并自动在APPLication文件夹里生成三个文件夹,如下,第一次访问应用文件路径:localhost/tr/index.php ...