Python的数据类型

一、数据类型
在python这门语言中,数据类型分为两种。 内置的和自定义的。 内置的包括 数字 、 字符串 、 布尔 、 列表 、 元组 、 字典 、 Bytes 、 集合 这些常用的以 及一些不太常用的数据型。而自定义的,一般以类的形式,根据需要组合以上内置类型成为独特的数据类型。 数据类型是Python语言非常重要的部分(哪部分不重要?),尤其是不同数据类型所支持的原生作,更是重中 之重,需要熟练的背在脑海里。很多时候,写大型项目时,不需要你多复杂的技巧,只需要用这些数据操作方法就可以。

原因之一,更好的分配管理内存,节省不必要的开支。如果没有数据类型的区别,那么所有的对象都必须按体 积最大的对象所必须大小的房子分配空间,也就是内存空间,这样的浪费太严重了。有了数据类型,计算机 就可以根据类型预定义的空间需求分配大小,合理开支。内存节省精简了,还能提高读取速度和运行效率。

原因之二,方便统一管理,提供同样的API。这样,我们可以为同一数据类型,提供同样的操作,限制其它不 允许的行为。也易于查找错误,定位问题。

原因之三,区分数据类型,更贴切人类对自然事物的分类管理习惯。我们人类对事物都进行了各种分类,植 物是植物、动物是动物,书是书,笔是笔。分类了之后,我们很自然的知道书可以读,笔可以写。数据类型也一样,让我们对抽象的数据有了可分辨的行为和自然的记忆。

二、数字类型
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字 1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。 还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变 量本身没有数据类型的概念 。

只有 1 ,[1,2] ,“hello” 这一类对象才具有数据类型的概念。 Python 支持三种不同的数字类型,整数、浮点数和复数。

①整数

通常被称为整型,数值为正或者负,不带小数点。python 3的整型可以当做Long类型使用,所以python 3 没有 python 2的Long类型。 表示数字的时候,有时我们还会用八进制或十六进制来表示。 十六进制用 0x 前缀和 0-9 , a-f 表示,例如: 0xff00 八进制用 0o 前缀和 0-7 表示,例如 0o45 python的整数长度为16、32位,并且通常是连续分配内存空间的。

在这里插入图片描述
从上面的空间地址看,地址之间正好差16。

小整数对象池

python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含 262 个指向整数对象的指针数组,范围是 -5 到 256 。

也就是说比如整数10,即使我们在程序里没有创建它,其实在Python后台已经悄悄为我们创建了。

为什么要这样呢?我们都知道,在程序运行时,包括Python后台自己的运行环境中,会频繁使用这一范围内的整 数,如果每需要一个,你就创建一个,那么无疑会增加很多开销。创建一个一直存在,永不销毁,随用随拿的小整数对象池,无疑是个比较实惠的做法。

在这里插入图片描述
从 id(-6) 和 id(257) 的地址,我们能看出小整数对象池的范围,正好是 -5 到 256 。

除了 小整数对象池 ,Python还有 整数缓冲区 的概念,也就是刚被删除的整数,不会被真正立刻删除回 收,而是在后台缓冲一段时间,等待下一次的可能调用。

在这里插入图片描述
上面,我给变量a赋值了整数100,看了一下它的内存地址。然后我把a删了,又创建个新变量b,依然赋值为 100,再次看下b的内存地址,和以前a存在的是一样的。

②浮点数、

浮点数也就是小数,如 1.23 , 3.14 , -9.01 等等。但是对于很大或很小的浮点数,一般用科学计 数法表示,把10用e替代, 1.23x10^9 就是 1.23e9 ,或者 12.3e8 , 0.000012 可以写成 1.2e-5 等等。

③复数(complex)

复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点。

数字类型转换:在某些特定的情况下,我们需要对数字的类型进行转换。 python为我们提供了内置的数据类型转换函数。

在这里插入图片描述
转换过程中如果出现无法转换的对象,则会抛出异常,比如 int(“haha”)

数学计算:对于数学计算,除了前面提到过的简单的加减乘除等等,更多的科学计算需要导入 math 这个库,它包含了绝 大多数我们可能需要的科学计算函数,如下表:

在这里插入图片描述
了解更多分析及数据抓取可查看:
http://cloud.yisurvey.com:9081/html/529942a8-212c-4c85-9c92-9c56beb4a299.html?ly=csdn
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值