Python:运算类内建函数列举

1. divmod()

python3.x版本中,整除运算用 “//”,取余可以用 “%”,在某些问题中要同时得到商和余数就需要两步运算,而使用divmod函数可以同时得到商和余数

函数有两个参数divmod(a,b),参数a是被除数,参数b是除数

eg: >>> divmod(5,2)

(2,1)  #使用内建函数返回一个元祖,第一个值是商,第二个值是余数

ps:突然想到主存的映射问题中,使用该函数可以很快得到主存中某地址上的数在cache中的对应块数和块中偏移量,极快就可以锁定位置了。

2. round()

内建函数round()用来进行“四舍五入”运算

函数有两个参数round(a,b),参数a是所要处理的小数,参数b表示要保留的小数位数

eg:>>> round(1.234567,2)

1.23  #返回值即是四舍五入后的值

###例外的“bug”###

eg:>>> round(1.12345,4)

1.1234   #按一般的十进制四舍五入,结果应该是1.1235

官方文档给出的解释是:"It's a result of the fact that most decimal fractions can't be represented exactly as a float. See Floating Point Arithmetic: Issues and Limitations for more information." 因为计算机中的数据都是二进制表示,而在浮点数的二进制表示这块,有部分浮点数不能用二进制来精确表示,而计算机存储的位数是有限制的,所以往往这类浮点数在计算机中就不会精确等于它原来的十进制数了。由于这个问题的存在,所以上面的运算结果也就是正确的啦!

ps: 需要精确运算时,建议使用decimal模块。

猜你喜欢

转载自www.cnblogs.com/codecheng/p/9279688.html