基础数据(续)
** 整数除以整数**
进入 Python 交互模式之后,练习下面的运算:
>>> 2 / 5
0
>>> 2.0 / 5
0.4
>>> 2 / 5.0
0.4
>>> 2.0 / 5.0
0.4
麻烦出来了,按照数学运算,以上四个运算结果都应该是 0.4。但我们看到只有后三个符合,第一个居然结果是 0。why?
在 Python(严格说是 Python2.x 中,Python3 会有所变化)里面有一个规定,整数除以整数,结果是整数(商)
浮点数与整数相除
继续开始试验
>>> 9.0 / 2
4.5
>>> 9 / 2.0
4.5
>>> 9.0 / 2.0
4.5
>>> 8.0 / 2
4.0
>>> 8 / 2.0
4.0
>>> 8.0 / 2.0
4.0
归纳,得到规律:不管是被除数还是除数,只要有一个数是浮点数,结果就是浮点数。
引用模块解决除法--启用
所谓的轮子其实就是C语言中类库的东东
在python2 中导入未来的支持的语言特征中division(精确除法),即from future import division ,当我们在程序中没有导入该特征时,"/"操作符执行的只能是整除,也就是取整数,只有当我们导入division(精确算法)以后,"/"执行的才是精确算法
试验走起来
#python 2.7.6
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
#导入前
>>> 1/2
0
>>> 10/3
3
#导入后
>>> from __future__ import division
>>> 1/2
0.5
>>> 10/3
3.3333333333333335
#导入后如果要去整数,加'//'
>>> 10//3
3
注: 在python3中已经支持了精确算法,所以无需再导入division(精确算法)
余数
%,就是要得到两个数(可以是整数,也可以是浮点数)相除的余数
Python 有很多人见人爱的轮子(模块),她还有丰富的内建函数,也会帮我们做不少事情。例如函数 divmod()
>>> divmod(5,2) # 表示 5 除以 2,返回了商和余数
(2, 1)
>>> divmod(9,2)
(4, 1)
>>> divmod(5.0,2)
(2.0, 1.0)
网友评论