一、整数
我们常说的一二三四五,上山打老虎,这个"12345"就是整数,Python的整数长度是不受限制的,也就说它有无限大的精度,所以可以随时随地的进行大数运算
整数的除法运算会产生带小数的结果,如下:
小数在Python中是以浮点数的形式存放的
二、浮点数
细心的朋友就会发现,0.1 + 0.2 不是等于0.3嘛,Python怎么计算的不对,是不是Bug?
对比起整数拥有无限的精度,浮点数却显得不那么专业了。Python的浮点数之所以是具有误差的,当涉及到一些对计算精度比较敏感的行业,比如说航天航空,你可能只是小数点第17位数多了个4,使本来飞往月球的火箭直接射到火星去了
如何精确地计算浮点数
这里需要使用一个叫做decimal的模块,decimal就是十进制的意思
E记法
"E记法"也就是科学计数法,用于表示一些比较极端的数
水熊虫是世界上生命力最顽强的生物之一,或许只有太阳爆炸或者停止燃烧了,它可能才会灭绝,变色、隐身、辐射、耐高温,无敌般的存在,那么这个开外挂的物种提醒有多大呢?非常小,最小只有50微米,那么转换为米的单位就是0.00005。
可以看到,Python选择使用科学计数法来表示,e-05就表示十的负五次方,合起来就是5乘以10的负五次方也就是0.00005
三、复数
复数包含了一个实部和一个虚部,如下图:
1就是实部,2j就是虚部,(1+2j)就是一个复数,无论是实部还是虚部,它们都是以浮点数的形式存放的
x.real:获取实部的数值,x.imag:获取虚部的数值
注意:它们都是浮点数
Python支持的数字运算如下:
首先是加减乘除,大家都比较熟悉,就不掩饰了
双斜杠(//)
双斜杠(//):表示的是一种特殊的除法,称之为地板除。地板除:确保两个数相除的结果是一个整数,如果不是整数,就会向下取整
地板除,取比目标结果小的最大整数,也就是所谓的"向下取整"。向下就是向小的这个数值去取整,所以-3//2正常结果是-1.5,但比-1.5小的整数应该是-2才对,所以这里的结果是-2
百分号(%)
百分号用于求两数相除的余数,两数相除如果能够整除那么余数是0,如果不能够整除那么就得到一个值,这个值称之为余数。
细心的朋友就会发现一个公式:X == (x // y) * y + (x % y),x和y先地板除求出结果来乘以y+(x%y),地板除的结果乘以除数加上余数等于被除数,所以Python中有个内置函数叫作divmod,作用就是同时求出两地板的结果和余数的值
divmod(x,y)
divmod(3, 2):3地板除2的结果是1,3余2的值结果也是1,所以得到的结果就是(1,1)
divmod(-3, 2):-3地板除2的结果是-2,-3余2的值结果是1,所以得到的结果就是(-2,1)
abs(x)
abs的作用是返回指定数值的绝对值
- -520的绝对值是520
- -3.14的绝对值就是3.14,如果传入的值是正数的话那它得到的是它本身
- 复数(前面的文章提到过),复数它是没有绝对值的,但是它有模,所以abs返回的结果就是复数的模,例如z = 1 + 2j,它的绝对值(模)就是2.23606797749979,
int(x)
- 输入字符串520,用单引号或者双引号或者三引号来表示字符串,得到520这个整数
- 输入浮点数3.14,得到的是一个截掉小数部分的整数,结果为3
- 输入9.99,结果为9,可以证明它不是四舍五入
float(x)
将指定的值转换成浮点数
- float('3.14'):得到一个浮点数3.14,字符串是不能进行计算的,浮点数的值,整数的值,复数的值它们是可以计算的,这就是区别。
- float(520):得到一个浮点数520.0,注意:它就算是整数,它也要加上一个".0"来表示说这是个浮点数。520与520.0在计算机内部的存储方式是不一样的,所以计算机会区分出整数和浮点数。
- float('+1E6'):E记法,也是可以进行转换成浮点数
complex(x)
将指定的值转换成复数
- complex("1+2j"):转换为复数
- complex("1 + 2j"):注意传入的是字符串的话,中间是不能有空格的,报ValueError的错误,说你这个字符串有问题不能转换为复数
pow(x, y)与x ** y
pow与幂运算符
幂运算符中间有两个(**),注意两个星号中间不能有空格
通常情况下,这两个实现的效果是等价的
- pow(2, 3):表示2的3次方,结果为8
- 2 ** 3:也同样表示2的3次方,结果为8
- pow(2, -3):表示2的-3次方,结果为0.125
- pow(2, 3, 5):将传入的第三个参数会将幂运算的结果与第三个参数进行取余运算相当于2 ** 3 % 5 = 8 % 5 取余数 3
函数
函数就像是一个封闭的工厂,我们只需要给它下订单它就会按照我们的要求来生产输出,于是我们这里的输入就是调用函数时传入的参数,而输出就是函数的返回值也就是运算结果,而这其中加工的过程我们是不需要理解的,除非这个工厂是你自己开的,但目前我们先学会下订单和收货就可以啦!
本文转载自微信公众号「崔九八」,作者「崔九八」,可以通过以下二维码关注。
转载本文请联系「崔九八」公众号。