经过了上节课对变量和字符串的基础学习,这节课,我们将会学习Python中数字的表示和计算方法。
1.整数(integers):
不含分数部分的数,与数学上的定义相同。在Python中,整数的长度不受限制,因此我们可以进行任意大数的运算。
E.g.

观察上面两次计算,我们可以发现,无论用Python计算的除式是否可以整除,得出的结果都会带有小数。在Python中,我们称带有小数的数为浮点数。
2.浮点数(floating point numbers):
浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。
E.g.

观察上面的计算,我们发现,浮点数在进行数学运算的时候产生了误差,这是因为,Python采取了IEEE754的标准来存储浮点数,而这种存储方法选择将十进制数转换为二进制数后再存储,这就导致某些小数在转换为二进制数时会变成无限循环小数,计算机只能存储其近似值,从而导致精度降低甚至是计算出错。
我们都知道,在很多领域,例如航天航空和金融领域中,计算哪怕出现些许的误差都可能会导致无法挽回的后果。因此,为了避免出现这种问题,Python提供了一种精确计算浮点数的方法:
3.Decimal模块:
在Python中,decimal 模块提供了高精度的十进制浮点运算,适用于需要精确计算的场景,如金融计算。
要使用Decimal模块,首先,我们需要导入它:

然后,我们需要调用decimal模块中的Decimal函数来实例化一个对象:

在上图中,我们将浮点数0.1和0.2通过Decimal函数实例化后分别输入到了a和b两个变量中,在这种情况下,我们再对赋值后的变量进行运算,就能够得到这两个浮点数计算的精确值。当然,Decimal函数也可以用于数值的比较:

4.E记法(科学计数法):
科学计数法是一种记录或标志数的科学表示法,把一个数表示成a与10的n次幂相乘的形式(1≤|a|<10,a不为分数形式,n为整数)。 在python 中,科学计数法又称为E记法,这种方法采用E符号来简化数的书写,例如:7.8×10⁷可简写为“7.8E+7” 或者“7.8e+7”,式中E(e)前的数代表科学计数法中的a,E(e)后的数代表10的指数n。
E.g.

5.复数(complex numbers):
在python中,复数的实部和虚部的表示方法如下:

如果我们将一个复数赋值给一个变量x,那么我们就可以通过“x.real”和“x.imag”来分别获取这个复数的实部和虚部。
E.g.


要注意的是,通过这种方法获取的实部和虚部都是浮点数。
6.数字之间的运算:
Python支持的常用数字运算如下所示:
| 操作 | 结果 |
| x + y | x加y的结果 |
| x – y | x减y的结果 |
| x * y | x乘以y的结果 |
| x / y | x除以y的结果 |
| x // y | x除以y的结果(地板除) |
| x % y | x除以y的余数 |
| – x | x的相反数 |
| + x | x本身 |
| abs(x) | x的绝对值 |
| int(x) | 将x转换成整数 |
| float(x) | 将x转换成浮点数 |
| complex(re,im) | 返回一个复数,re是实部,im是虚部 |
| c.conjugate(x) | 返回x的共轭复数 |
| divmod(x,y) | 返回(x//y,x%y) |
| pow(x,y) | 计算x的y次方 |
| x ** y | 计算x的y次方 |
图中值得注意的一些特殊运算:
1.x // y:
x除以y的结果,一定是整数,如果不是整数就向下取整。
E.g.

要注意的是,在结果为负数的情况下,结果依然是向下取整。
2.x % y:
当两个数相除能够整除,那么结果就是0,如果不能够整除,得到的结果就是一个数,这个数我们称为余数。
E.g.

实际上,我们不难发现如下的公式:
x==(x//y)*y+(x%y)
也就是说,地板除的结果乘以除数加上余数等于被除数。实际上,在python中就有一个内置函数divmod(x,y),它可以返回两个数地板除的结果和余数的值:
E.g.

3.abs(x):
如果x是实数,那么它返回x的绝对值,如果x是复数,那么它返回x的模:
E.g.

4.pow(x,y)和x**y:
返回x的y次方的值:
E.g.

在通常情况下,这两种函数的运算是等价的,但是pow函数实际上支持第三个参数,形如pow(x,y,z),它得到x的y次方除以z的余数:
E.g.

5.int(x),complex(x),float(x):
分别将x转换成整数,复数和浮点数:
E.g.


要注意的是,int(x)中若x是浮点数,那么它会对x向下取整。实际上,这三个函数当然也可以对字符串进行转换:
E.g.

需要注意的是:
- int(x)中若x是字符串,那么字符串中的数一定要是整数;
- complex(x)中若x是字符串,那么字符串中的数一定不要有空格。
那么以上就是今天的Python基础学习第二节了(≧∀≦)ゞ
这节相对比较简单,只需要记住一些公式的大概用法就可以了。如果有意见,也欢迎各位在评论区指出!


啧啧很详细啊O<>O催更up