整数
python整数无限制
最常用的pow(x,y)函数实现指数运算,即xy
例如:
pow(2,100)
则是运算2的100次方
pow(2(2,25))
则运算2的2的25次方
python整数有四种进制表示形式
十进制
例如: 123、285、-236、
二进制
例如:0b101、0B110、-0b001
八进制
例如:0o123、-0O456
十六进制
例如:0x9a、-0X89
浮点数
浮点数的运算存在不确定尾数,这不是bug
例如 0.1+0.2
运行结果是:0.3000000004
这就是不确定尾数造成的
对于小数0.1,计算机中所有数字采用二进制,在python语言中使用53位二进制表示小数部分,约10-16
0.1在计算机中二进制表示的数字为一串0101这样的数字
由于计算机中的二进制与十进制之间不存在对等关系,所以0.1在用二进制表示时是一个无限小数,计算机在截取时只能截取其中53位无限接近0.1,并不真正等于0.1
如果这53位表示的二进制转化为十进制,它是0.1但是会有不确定尾数更随其后,正是因为二进制表示小数,可以无限接近,但是不完全相同这个问题,使得0.1和0.2进行计算时,它在计算机内部进行二进制的转换,再经过二进制的运算,再经过反向转换,转换成十进制的小数时,结果会无限接近0.3,但可能会出现不确定尾数
为了解决0.1+0.2==0.3
运行结果为 False
我们通过round函数来判断浮点数运算与浮点数之间的比较关系
修改以上程序 round(0.1+0.2,1)==0.3
运行结果为 True
- round(x,d)
对x四舍五入,d是小数截取位数,即取小数后的几(d)位保留
浮点数的科学计数法表示
使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b>
表示 a*10b
例如:4.3e-3 值为0.0043
9.6E5值为960000.0
复数类型
只有python中提供了复数类型
定义j=根号下(-1),以此为基础,构建数学体系
a+bj 被称为复数,其中,a 是实部,b 是虚部
例如 z=1.23e-4+5.6e+89j
z.real
获得实部z.imag
获得虚部
数值运算操作符
操作符及使用 | 描述 |
---|---|
x+y | 加,x与y之和 |
x-y | 减,x与y之差 |
x*y | 乘,x与y之积 |
x/y | 除,x与y之商 10/3结果是3.333333333335 |
x//y | 整数除,x与y之整数商 10//3结果是3 |
+x | x本身 |
-y | y的负值 |
x%y | 余数,模运算 10%3结果是1 |
x**y | 幂运算,x的y次幂,Xy // 当y是小数时,10**0.5结果是根号10 |
二元操作符有对应的增强赋值操作符,它的基本功能是对两个数进行运算之后去更改其中的一个数
增强操作符及使用 | 描述 |
---|---|
x op =y | 即 x=x op y,其中,op 为二元操作符 |
例如:
>>> x=3.1415
>>> x**=3 #与 x=x**3等价
结果为:31.006276662836743
x等于x的3的3次幂
数值运算函数
一些以函数形式提供的数值运算功能
函数及使用 | 描述 |
---|---|
abs(x) | 绝对值,x的绝对值 |
divmod(x,y) | 商余,(x//y,x%y),同时输出商和余数 |
pow(x,y[,z]) | 幂余,(x**y)%z,[…]表示参数z可省略 |
round(x[,d]) | 四舍五入,d是保留小数位数,默认值为0 |
max(a,b,c,d) | 最大值,返回abcd中的最大值 |
min(a,b,c,d) | 最小值,返回abcd中的最小值 |
int(x) | 将x变成整数,舍弃小数部分 int(“123”)结果为123 |
float(x) | 将x变成浮点数,增加小数部分 float(“12.3”)结果为1.23 |
complex(x) | 将x变成复数,增加虚数部分 complex(4)结果为4+0j |