python之路(内存,小数据池,编码等)
代码块:
python真正的代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块。
但是,在python终端交互模式下,每一条代码都是一个代码块
python在同一个代码块中的变量,初始化对象的命令时,它会将变量与值的对应关系放到一个字典中,
如果下面的代码在遇到初始化对象的命令,他会先从字典中寻找,如果存在相同的值,他会复用,指向的都是同一个内存地址。
>>> i1 = 1000 可以理解为这一行在一个文件中。
>>> i2 = 1000 可以理解为这一行在另一个文件中。
内存地址:用于保存数据到内存条的物理地址,查询一般用ID,检查一般用is或'=='
==:
name = 'alex' # 赋值
print('alex' == 'alex') # 数值相同
result:true
id:数据物理内存地址,在内存中地址是唯一的,如果两个变量指向的ID相同,则证明他们在内存中是同一个
name = 'alex123'
name1 = 'alex123'
print(id(name),id(name1)) # 2370269674608 2370269674608
is:判断两个变量的物理内存地址是否相同,如果is是True, == 一定是True
name = 'alex123'
name1 = 'alex123'
print(name is name1) #True
print(name == name1)#True
小数据池:python对内存做的一个优化,他将 -5 ~256 的整数,以及一定规则的字符串,提前在内存中创建了池,容器,可以节约内存,提高效率
符合规则的字符串:字母,数字,下划线组成,长度不超过20的字符串,含有特殊字符的字符串会单独创建一个内存地址.
python对于不同的代码块:初始化对象的命令时,他会从小数据池中寻找。
编码:数据的保存解读方式,分为ASCII,Unicode,utf-8,gbk,编码之间不能互相识别.网络传输或硬盘保存的0101数据,必须以非Unicode方式传输保存
ASCII:字母,数字.特殊字符
都是8个字节
Unicode:万国码,包含世界上所有的文字
都是32个字节,浪费资源
utf-8:英文,非英文,中文
英文:8个字节
非英文:16个字节
中文:24个字节
gbk国标:字母,数字,特殊字符,中文。
字母:8位
中文:16位
其中:
python的str编码都为Unicode,如果需要传输和保存,需要转为bytes数据类型
区别:
英文字母:
str:
表现形式:s1 = 'abby'
内部编码方式:unicode
bytes:
表现形式:b1 = b'abby'
内部编码方式:非unicode
中文:
str:
表现形式:s1 = '西西'
内部编码方式:unicode
bytes:
表现形式:b1 = b'\xe5\xa4\xaa\xe7\x99\xbd'
内部编码方式:非unicode
str --- > bytes encode 编码
s1 = 'abby'
s2 = '西西'
b1 = s1.encode('utf-8')
print(b1)
result:b'abby'
b2 = s2.encode('utf-8')
print(b2)
result:b'\xe8\xa5\xbf\xe8\xa5\xbf' # utf-8 的bytes
bytes ---> str decode 解码
s2 = b2.decode('utf-8')
print(s2)
result:西西
python之路(内存,小数据池,编码等)的更多相关文章
- python之路---06 小数据池 编码
二十二.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有 ...
- 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( ...
- 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命令窗口中几乎都不会缓存 不同的解释器有不同 ...
- python基础4(小数据池,编码,深浅拷贝)
1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num ...
- is和==的区别,小数据池,编码
1 is 和 == 的区别 1> id( )表示我们可以通过它来查到在内存中的地址 s = "alex" lst = [1,2, 4] lst = [1, 2, ...
- python代码块,小数据池,驻留机制深入剖析
一,什么是代码块. 根据官网提示我们可以获知: 根据提示我们从官方文档找到了这样的说法: A Python program is constructed from code blocks. A blo ...
随机推荐
- GitHub新手教学(从新手安装到初步使用)
版权声明:本文为博主原创文章,转载请标明出处! 博客地址:http://blog.csdn.net/qazwsxpcm https://blog.csdn.net/qazwsxpcm/article/ ...
- 如何用一月6RMB搭建一个国外服务器
转载自我的博客:https://blog.ljyngup.com 前言 本文将教你如何用一月6RMB的价格搭建一个属于个人的外国服务器.并且一月500G流量,延迟低于500ms. 开始 导航:Virm ...
- css 关于自适应页面
//不能使用绝对宽度的布局 不能使用具有绝对宽度的元素 media_type 设备类型说明 all 所有设备 aural 听觉设备 braille 点字触觉设备 handled 便携设备,如手机.平板 ...
- 给 iTerm 终端设置代理
本文介绍如何为自己的终端设置代理,从而实现在命令行中访问Google. 1. 背景 当你使用SS FQ时,大部分浏览器都可以成功访问Google,但是在命令行下执行curl https://www.g ...
- Nexus 安装
Windows下安装Nexus OSS 3.12.1 1. Nexus 下载 到sonatype官网下载开源免费的OSS版本.OSS即为Open Source Software. 下载地址:https ...
- VMware 克隆 CentOS 后网卡信息修改
概述 在我们需要多台 CentOS 虚拟机的时候,对已有虚拟机的系统进行克隆或是复制.但是这样做又有一个问题,克隆出来的虚拟机启动的时候你输入命令:ifconfig,eth0 网卡信息没了,只有一个 ...
- mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it"
mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it" 现 ...
- 曹工说Spring Boot源码(19)-- Spring 带给我们的工具利器,创建代理不用愁(ProxyFactory)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- 【转载】STM32 ST-LINK Utility介绍、下载、安装、使用方法
转载地址:https://blog.csdn.net/ybhuangfugui/article/details/52597133 总结的很好!!! Ⅰ.写在前面本文讲述的内容是STM32 ST-LIN ...
- Webpack中hash、chunkhash和contenthash三者的区别
在webpack中有三种的方式生成哈希值,分别为hash.chunkhash和contenthash.这三种方式有着不同的用处,或者说在webpack的不同环境中,会使用不同的方式生成哈希值.那为什么 ...