Q-Logo 我的学习笔记分享

Python 3中的除法运算和取余运算

除法运算

Python 3中的除法运算符有两种:/和//。使用时须搞清楚其中的区别。

  • /,"true" division,a/b 返回的是a除以b按浮点数运算得到的浮点数结果,即使a和b都是整数也是如此。注意:这一点和Python 2中是不同的。Python 2中,当a或b是浮点数时,a/b返回的是按浮点数运算得到的浮点数结果(与Python 3相同);但当a和b都是整数时,a/b返回的是整数,具体说来就是a除以b按浮点数运算得到浮点数结果后,再将结果向负无穷取整(也有说向下取整、向左取整、向小取整等)得到的整数(与Python 3不同)。下面给出的是Python 3中“/"运算的例子:
python 3 true division example.PNG
  • //,floor division,a/b 返回的是a除以b按浮点数运算得到浮点数结果后,再将结果向负无穷取整(也有说向下取整、向左取整、向小取整等,这也是这种除法被称为“地板除”的原因)得到的整数(当a和b都是整数时)或浮点数(当a或b是浮点数时)。此运算在Python 2中和Python 3中得到的结果是一样的,举例如下:
python 3 floor division example.PNG

取余运算

Python 3中的取余(或取模)运算符为%。a%b表示a除以b得到的余数,余数符号与除数b相同。如果a或b为浮点数,那么结果也为浮点数。举例如下:

python 3 mod example.PNG

//运算与%运算的关系

Python 3中的地板除//运算和取余%运算之间满足商*除数+余数=被除数的关系:

若

m=a//b

n=a%b

则n与b同号,且

m*b+n=a