Python 四则运算

加、减、乘、除

>>> 1+2
3
>>> 2-1
1
>>> 1*2
2
>>> 1/2
0
>>> 1/2.0
0.5

有问题的地方:

>>> 10.0/3
3.3333333333333335
>>> 0.1 + 0.2
0.30000000000000004
>>> 0.1 + 0.2 - 0.2
0.10000000000000003
>>> 0.1 + 0.2 - 0.3
5.551115123125783e-17

我们输入的是十进制,计算机要把十进制的数转化为二进制,然后再计算。但是,在转化中,浮点数转化为二进制,转化为二进制后,不会精确等于十进制的0.1。同时,计算机存储的位数是有限制的,所以,就出现上述现象了。对于需要非常精确的情况,可以使用 decimal 模块,它实现的十进制运算适合会计方面的应用和高精度要求的应用。

余数

>>> 5%2
1
>>> 5%2.0
1.0

可以使用内建函数divmod()来返回商和余数

>>> divmod(5,2)  #表示5除以2,返回商和余数
(2, 1)
>>> divmod(5,3)
(1, 2)
>>> divmod(5,2.0)
(2.0, 1.0)

四舍五入
使用内建函数round()来实现

>>> round(1.2345,2)
1.23
>>> round(1.2345,3) #有问题,应该是1.235,归根到底还是浮点数中的十进制转化为二进制惹的祸。
1.234

math模块

导入模块

>>> import math
>>> math.pi
3.141592653589793
>>> dir(math)       # 查看模块中包含的工具
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
>>> help(math.pow) #查看每个函数的使用说明

常用的几个math函数:

>>> math.sqrt(9)
3.0
>>> math.floor(3.14)
3.0
>>> math.floor(3.92)
3.0
>>> math.fabs(-2)    #等价于abs(-2)
2.0
>>> abs(-2)
2
>>> math.fmod(5,3)    #等价于5%3
2.0
>>> 5%3
2

你可能感兴趣的:(Python 四则运算)