小白成长之路(8)--(python)变量数据存储
2017-11-03 22:33
190 查看
在python当中,变量的数据存储有一个非常有特色的地方:
(1)、首先我们在DOS命令下打开python;
定义一个变量a,向a赋值一个255的对象;
再定义一个变量b,向b赋值一个255的对象;
按照道理来说,在内存中会新建两个地址分别用于存放两个255对象,那么a和b指向的地址必然不会相同;
所以我们在这里调用python中的“id()”这个函数来获取a和b所指向的地址。
运行如下图:
大家可以看到,id(a)所输出的地址是:1622075152,而id(b)输出的地址也是:1622075152,两个255对象地址相同。
而上图中我也测试了当对象为256时,a和b的地址也相同。
但是,当我将对象设置成257时,两个对象的地址不一致了。
PS:原来,python提前将0-256存放在内存之中,当我们使用0-256内的数值时,变量会直接指向这些数,而不再在内存中创建新的空间。
(2)、既然int类型这样,那其他类型呢?
我同样尝试string类型。
运行如下图:
同样,我将smoking对象分别赋值给变量a和b,得出来的id(a)和id(b)的地址相同;
但是我将一串长长的网址对象赋值分别赋值给a和b,得出来的地址却不相同;
PS:同样,python提前存放了一些短字符串,为内存的节省做出了一定的贡献。当然,长字符串还是会新建内存的
(3)、提出问题:
这个现象在编辑器上是不存的(如下两张图),你能说出原因吗?
4000
(1)、首先我们在DOS命令下打开python;
定义一个变量a,向a赋值一个255的对象;
再定义一个变量b,向b赋值一个255的对象;
按照道理来说,在内存中会新建两个地址分别用于存放两个255对象,那么a和b指向的地址必然不会相同;
所以我们在这里调用python中的“id()”这个函数来获取a和b所指向的地址。
运行如下图:
大家可以看到,id(a)所输出的地址是:1622075152,而id(b)输出的地址也是:1622075152,两个255对象地址相同。
而上图中我也测试了当对象为256时,a和b的地址也相同。
但是,当我将对象设置成257时,两个对象的地址不一致了。
PS:原来,python提前将0-256存放在内存之中,当我们使用0-256内的数值时,变量会直接指向这些数,而不再在内存中创建新的空间。
(2)、既然int类型这样,那其他类型呢?
我同样尝试string类型。
运行如下图:
同样,我将smoking对象分别赋值给变量a和b,得出来的id(a)和id(b)的地址相同;
但是我将一串长长的网址对象赋值分别赋值给a和b,得出来的地址却不相同;
PS:同样,python提前存放了一些短字符串,为内存的节省做出了一定的贡献。当然,长字符串还是会新建内存的
(3)、提出问题:
这个现象在编辑器上是不存的(如下两张图),你能说出原因吗?
4000
相关文章推荐
- Python小白学习之路(八)—【变量】【基本数据类型分类】【集合】【集合的功能】
- python基础----变量,数据类型
- 数据可视化 三步走(一):数据采集与存储,利用python爬虫框架scrapy爬取网络数据并存储
- Python学习 Day 2-数据类型和变量
- Python新手学习基础之数据类型——变量
- [python]通达信历史日线数据解析转换为CSV文件进行存储
- Chap 4 学习笔记-使用C#存储变量数据
- python初级 1 数据类型和变量
- Python 变量和简单数据类型
- 详解如何在python中读写和存储matlab的数据文件(*.mat)
- 如何在python中读写和存储matlab的数据文件(*.mat)
- python中如何把数据存储到本地
- Python 关于python的数据存储方面
- 以字节为单位显示变量的内存存储数据
- Python网络数据采集5:存储数据
- Python 中的数据类型 & print 语句 & 注释&变量&字符串转义&布尔
- python数据类型和变量的总结
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- TensorFlow的 数据和参数的输入 及变量存储
- python+fastcgi+flup获取请求的数据和环境变量