Python 数字类型,稍不注意就歪。

w3cschool

共 2790字,需浏览 6分钟

 ·

2022-04-12 12:25

编程语言的学习,总绕不过它的基本对象类型。


这里的“对象”不是你的对象,是编程语言的对象(Object)你可以把它理解为一块内存,保存的是它们所代表的值。


如果还理解不了,你就把它想成是你手边的一个物件(值),这个物件占据着一块立体的空间(内存)。


在 Python 的世界中,流传着“万物皆对象”的传说,是对象就肯定由类型,就和我知道你是个人,可是我得知道你是个什么性别的人一样。


基本对象类型的还得从它的基本数据类型开始说起。


Python 在计算机中操作数据的格式叫做数据类型。在 Python 中,基本的数据类型主要有整数、浮点数、字符串、布尔值。


这篇文章主要讲和数字相关的整数和浮点数。讲到“数字”,这些都是很简单的东西,不过以此延伸出来的一些知识点还是值得注意的。


话不多说,直接开始。





在 Python 中,对数字的设定很简单,只要不是憨憨就能学会。


整数和浮点数构成了 Python 中的数字类型。


整数


整数就是那个整数,比如 1,2,-1,-2 and so on。


在 Python 里,整数用 int 表示。


在 Python 中,整数比起其他编程语言省心的是它不需要区分整型,长整型什么的,它就是一个整型。不管你输入多么大的数字它永远会输出相应的数字,不会出现溢出的问题。


数据溢出是指要表示的数据超出了数据所能表示的范围。


不太懂也没关系,你可以理解成在 Python 中的整数就是,在电脑内存允许的情况下,你随便输入多少位的数字都行,不管输入多大的数 Python 都能 hold 的住。



浮点数


浮点数就是我们认识的小数,比如1.1,2.2222222222 and so on。


虽然说这样说不太严谨,因为整型也可以用浮点型表示,但是初期的话你可以先这么了解着。


在 Python 里,浮点数用 float 表示,同样它比起其他编程语言来好的是它不需要区分单精度和双精度,它就是一个浮点型。


>>> 111111111111111111111111111111111 #整数111111111111111111111111111111111>>> 2.2222222222222222222222 #浮点数2.2222222222222223>>> -3333333333333 -3333333333333>>> -4.444444444444444444444-4.444444444444445

在 Python 中,如果你想知道你看到的东西是个什么类型,可以通过 type() 函数。



是说查的这个数是整数。

是说查的这个数是浮点数。


变量


还记得我在文章开头所讲的对象嘛,上面例子的一个个整数或者浮点数就是一个个对象。


每个对象必然在内存中有一个属于自己的地址,这就和家里的门牌号一样。



在 Python 中,一般用 id() 函数来查看每个对象的“门牌号”(即内存地址)。


你看上图中,第 1个数和第 2 个数输出的结果不同,这就证明它们俩的门牌号不一样,不是一家人(即不是同一个对象)。


说到这,有一点大家要和现实区别开来:在我们正常的认知里,100 和 100.0 是一个东西,但在 Python 中却不是。



看到上图输出的结果了么?两个输出值不相等,那证明这俩不是一家人。


仅仅知道一个个整数或者浮点数是对象,单独来看是没什么意思的。


编程语言中,对象是要和变量建立相应的关系,捆绑起来用才是有意义的。



像上图 a 就是变量,1 这个数是变量,二者之间建立了关系。


这个关系是怎么建立的呢?且听我详细讲来。Python 在执行 a = 1 这个赋值语句的时候,进行了 3 步:


先是创建一个代表值 1 的对象,然后再创建一个变量 a,最终将变量 a 和对象 1 连接,下面我用一个图更清晰的表示一下:



由上图我们可以看出,变量 a 其实变成了对象 1 的一个引用。


如果你知道指针的话,你就会发现在内部:变量其实就是到对象内存空间的一个指针。


再来看一个例子:



上面的例子 a = 1 我们是在变量 a 和数字 1 之间建立了联系,所以之后单独输入 a 的时候,它输出的是 1。


紧接着我又让 a =  2.1 ,这是让 a 和 2 之间建立了联系,再输入 a ,此时的 a 为 2.1。


这是 Python 一个非常好的功能,那就是变量无类型


一开始 a = 1 的时候 a 自动的就是整型,后来让 a = 2.1 的时候,a又成了浮点型,不像 C/C++ 等编程语言一样,在写之前还要先定义变量的类型。



数据运算


数据运算就是我们所熟悉的加减乘除四则运算,外加取余、指数等操作。


四则运算


这里的加减乘除和我们现实中学的加减乘除大致一样,只有些许差别,毕竟 Python 里的数字是分类型的。


下面我们举个例子来说一下:


>>> 1 + 23>>> 1.0 + 23.0>>> 1.0 + 2.03.0


相信眼尖的小可爱已经看出来了,差别就是你的运算符两侧只要有一个是浮点数,那么你这个就是浮点数,只有整数 + 整数 = 整数


上面这条规律在除法中不太适应:Python 中整数 / 整数 = 浮点数,有人可能问为啥这样,别问,问就是规定。


>>> 4 / 22.0>>> 5 / 22.5


整除操作


如果两数相除你想得到一个整数,可以用整除操作


整除操作的符号是 // ,当除不尽的时候显示的只是整数,而没有小数点后面的部分。


>>> 3 // 21>>> 10 // 33


取余操作


余数操作的符号是 %


>>> 5 % 21>>> 7 % 43


指数操作


指数操作的符号是 **, x ** y 代表 x 的 y 次方。


>>> 2 ** 38>>> 5 ** 225


指数操作中,浮点数的操作和整数不太一样,浮点数的指数操作产生特别大或者特别小的数,输出的结果通常会以“科学计数法”的形式表示。


>>> 9.9 ** 1003.6603234127323083e+99

其中 e+99 表示 10 的 99 次方。


而且在 Python 中,浮点数存在取值范围,当输出的数超出了取值范围,就会数据溢出


>>> 9.9 ** 999.9Traceback (most recent call last):  File "", line 1, in <module>OverflowError: (34'Result too large')

所以,在 Python 中遇到浮点数的操作,一定要慎之又慎!


四舍五入


Python 中的四舍五入可以通过函数 round() 来实现。


>>> round(1.23456, 2)1.23>>> round(1.23456, 3)1.235



好啦,Python 数字类型到这基本就结束啦。


如果觉得有帮助的话,记得帮我分享一下,点赞再看的加持是我写作的小马达。

浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报