一文了解Python中的数字类型

2019-06-13 13:39:49 来源:互联网
标签:
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字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,32。
 
小整数对象池
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这个库,它包含了绝大多数我们可能需要的科学计算函数,如下表
 
 
例子
 
 
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
专访AI资深讲师齐伟:学习Python语言“心急吃不了热豆腐”

随着AI的走热,AI工程师也身价倍增,甚至爆出“AI工程师平均年薪80W”的劲爆新闻,多年不温不火的Python也随之受到追捧,根据TIOBE的排名,Python已经超越C#,与Java、C一期成为全球前3大最流行语言。Python语言热是不是资本狂潮下的一股泡沫?还是真正具有应用价值?

ARM内存边界对齐的结构体

默认情况下,在32位cpu里,gcc对于结构体的对齐方式是按照四个字节来对齐的。看以下结构体

可预置可逆4位计数器设计
可预置可逆4位计数器设计

利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端,接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接两个轻触开关,用来作加计数和减计数开关。

Python之父考虑重构Python解释器

7月26日消息 近日,Python之父吉多·范罗苏姆发表一篇名为《PEG Parser》的文章,范罗苏姆表示,他正考虑使用PEG Parser 代替现有的类 LL(1) Parser(名为pgen),来重构Python解释器

如何在U盘安装绿色版嵌入式 Python

一直以来都习惯将各种日常工具和开发环境变为绿色版。portable,一个U盘就能将日常所用到的开发环境和必备资料随身携带,从公司到家里,再也不用背上重重的笔记本,通勤路上也能轻轻松松的听听音乐,看看kindle了。

更多资讯
嵌入式A7平台AWTK性能实测

为了比较直观的看到AWTK的基本性能,我们对产品开发者比较关心GUI的一些参数做了测试,如界面刷新帧数、启动时间等。让我们从参数上直观了解Linux下AWTK与Qt的性能对比。

重磅!嵌入式Linux GUI有了新选择

随着手机、智能手表等便携式设备的普及,用户对人机交互界面(GUI)的要求越来越高,而Qt的资源占用大等短板致使在某些应用仍存在难点。现在嵌入式Linux GUI有了新选择!本文将为您介绍AWTK的强大魅力。

兼容性差、无法跑ARM 64位程序成 Windows on ARM 的致命缺陷?

在IFA上,Intel以运行Dropbox、Logitech、Plantronics等程序的兼容性问题,和无法顺利跑ARM64游戏为例,来梦里抨击Windows on ARM设备。

谷歌又涉嫌垄断?美国 50 名总检察官正在调查

与非网 9 月 10 日讯,谷歌最近又摊上事了,美国的50名总检察官正在参与对谷歌涉嫌从事反垄断行为的调查。

Microchip大中华区技术精英年会2019报名注册现已开放

Microchip Technology Inc.(美国微芯科技公司)今日宣布,2019年大中华区技术精英年会现已开始接受报名。技术精英年会是Microchip为嵌入式控制工程师举办的技术培训盛宴。