IT编程Python开发基础系列数字

数字类型用于存储数学意义上的数值。

数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。

还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念。类似1,[2,3,4],“haha”这一类对象才具有数据类型的概念。

例如:

a=1#创建数字对象1

a=2#创建数字对象2,并将2赋值给变量a,a不再指向数字对象1

这里,发生了变化的是变量a的指向,而不是数字对象1变成了数字对象2。初学者可能会比较迷糊,但不要紧,我们努力去明白它。

Python支持三种不同的数字类型,整数、浮点数和复数:

1.整数(Int):

通常被称为整型,是正或负整数,不带小数点。Python3的整型可以当作Long类型(更长的整型)使用,所以Python3没有Python2的Long类型。

例如:1,,-,0,等等。

表示数字的时候,有时我们还会用八进制或十六进制来表示:

十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。

八进制用0o前缀和0-7表示,例如0o12

Python的整数长度为32位,并且通常是连续分配内存空间的。

id(-2)186820id(-1)id(0)id(1)id(2)

从上面的空间地址看,地址之间正好差32。为什么会这样?因为Python在初始化环境的时候就在内存里自动划分了一块空间,专门用于整数对象的存取。当然,这块空间也不是无限大小的,能保存的整数是有限的,所以你会看到id(0)和id(00)之间的地址差别很大。

id(0)id(00)

小整数对象池:

Python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含个指向整数对象的指针数组,范围是-5到。也就是说比如整数10,即使我们在程序里没有创建它,其实在Python后台已经悄悄为我们创建了。

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

下面我们来验证一下小整数对象池的存在。

id(-6)id(-5)id(-4)id()id()id()

从id(-6)和id()的地址,我们能看出小整数对象池的范围,正好是-5到。

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

a=0000id(a)dela#删除变量ab=0000id(b)

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

del是Python的删除关键字,可以删除变量、函数、类等等。

这一段内容,可能感觉没什么大用,但它对于理解Python的运行机制有很大帮助。

以上就是关于Python数字类型的详解,后续会持续更新Python相关知识点。私信回复,免费领取G网盘全科目编程学习资源,包含视频教程、项目源码、学习路线图等,赶快私信我吧!




转载请注明:http://www.aierlanlan.com/grrz/4393.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了