python的数字类型,只要你认识中文,就能零基础学会

前言

大家好,今天我们来看看python的数字类型,数字类型是每种编程语言必备属性,只有给数字赋予明确的数字类型,计算机才能对数字进行处理运算,因此,正确使用数字类型是十分必要的,不同的语言,数字类型类似,但具体表示方法有所不同。

python有三种不同的数字类型,它们分别是:整数、浮点数和复数。

一、整数

首先我们来看一下整数,我们常说的12345,上山打老虎。那么这个12345就是整数啦,python的整数长度是不受限制的,也就是说它有无限大的精度,所以你可以随时随地的进行大数运算,比如我们随便用两个数相除:

我们可以看到得到的结果是一个小数 ,其实呢,python的除法就算能够被整除,也会产生带小数的结果。我们都知道6除以2应该等于3,但是呢,在python这里应该得到3.0。

 小数在python中是以浮点数的形式存放的,那么接下来我们就介绍一下浮点数。

二、浮点数

大家都上过小学,数学基础应该不会太差,那么我来考考你们,0.1加0.2等于多少呢?那肯定有人说等于0.3嘛,想都不用想。是吗?那我们看看python会给出什么样的答案

 我的天呐,python似乎有自己的想法,那么有的同学就会有疑问了?这会不会是bug呢?好,既然这样,那么我们再来看一个

 

 这里呢我们初始化一个变量i,它的初始值是0,那么我们进入一个循环,循环的条件是:i小于1,也就是说i只要小于1,那么就永远执行循环体内的内容。那循环体的内容呢,就是说每一次i都等于i+0.1,也就是这一次等于0,那么下一次执行完后就等于0.1,再下次就是0.2,以此类推对吧。然后每一次把它的值给打印出来,如下:

 啊这...未免bug也太多了点吧。对比起整数拥有无限的精度,浮点数却显得不那么专业了对吧。其实,python的浮点数之所以是具有误差,是因为python跟C语言一样,都是采用IEEE754的标准来存储浮点数的,所以呢会产生一定精度上的误差。由于浮点数并不是百分之百精确的,所以我们拿浮点数来作比较就要特别担心啦。

比如说我们在这0.3,判断它是否会与0.1+0.2会相等。那我们字面上看,人类的角度看绝对是相等的对吧,0.1+0.2肯定等于0.3嘛。但是呢,python给到的答案是False。

 因为我们从刚刚的实验中可以得知,在python里边0.1+0.2它储存的是:

 所以。这里的0.3应该是小于0.1+0.2的,这样python会认为是True。但是这样是不行的啊。我们都知道,当涉及到一些对计算精度比较敏感的行业,比如说航天航空,你可能只是小数点第17位数多了个4,但本来飞向月球的火箭就有可能直接飞到火星去了。还有金融领域,哪怕是很小的一点点误差,都会失之千里,就是不可以被原谅的。

考虑到有些同学不是学这些的,但是想通过学习python来充实自己的小金库,所以呢,我就在这里教大家如何精确地计算浮点数。这里呢,我们需要一个叫做decimal的模块,decimal就是十进制的意思。

我们先import decimal,然后使用decimal的Decimal来实例化一个对象,暂时我们还没有学习到“类和对象”,所以不知道什么叫实例化一个对象很正常,大家可以先依葫芦画瓢,之后我会慢慢讲到相关知识点的,到时候就自然而然的理解了。

在这里我们调用一个decimal,然后我们传入一个参数'0.1',注意这里是字符串,然后我们给它赋值变量到a里面去,同样的道理

 尽管代码写起来比较麻烦,还要使用字符串来表示数字,但是呢,我们不难想到这一切都是为了精准,这次我们就能打出完全精确的答案了,我们用它来比较也是可以的

 谈到浮点数,我们就不得不提到‘E记法’,‘E记法也就是我们平时所说的科学计数法’,用于表示一些比较极端的数。我们知道水熊虫是世界上生命力最顽强的生物,或许只有太阳爆炸了,或者停止燃烧了它才会灭绝。变色、隐身、辐射、耐高温,无敌般的存在。

那么这个开外挂的物种体型有多大呢?非常小,最小只有50微米,那么换算成米的单位就是0.00005,小数点后总共有4个0再加一个5。python选择使用科学计数法来表示:e-05就表示,十的负五次方,合起来就是5乘以10的负五次方,结果也就是0.00005

 三、复数

复数包含了一个实部和一个虚部,那我们在这里写:

 那么这个1就是实部,2j就是虚部,这个就是一个复数。无论是实部还是虚部,它们都是以浮点数的形式存放的。如果我们将一个复数赋值给一个变量,比如说我在这将1+2j这个复数赋值给变量x,那么我们通过x.real来获取它的这个实部是数值,通过x.imag来获取它的这个虚部的数值,注意:它们都是浮点数。

 


好啦,今天我们就讲到这里了,非常感谢大家的支持和喜欢,要是大家觉得这篇文章分享的不错的话,一键三连哦,点关注下次不迷路。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值