整数除法 (%) Python 中是不是存在错误?
Posted
技术标签:
【中文标题】整数除法 (%) Python 中是不是存在错误?【英文标题】:Is there a bug in integer division (%) Python?整数除法 (%) Python 中是否存在错误? 【发布时间】:2020-01-07 08:55:12 【问题描述】:Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32 输入“help”、“copyright”、“credits”或“license”了解更多信息。
7%5 2 8%5 3 6%5 1
【问题讨论】:
这里有什么问题? 7%5 表示“7 除以 5 的欧几里得除法的其余部分是 2” python3 中的整数除法是//
【参考方案1】:
部门/
以整数作为输入,除法会给你一个整数结果(Python2+)
>>> 7/5
1
>>> 8/5
1
>>> 10/5
2
输入至少一个非整数 (Python2+),您将得到一个非整数结果。
>>> 10/1.5
6.666666666666667
>>> 10/4.0
2.5
Python3:整数除法为//
>>> 10/4 # Python 3
2.5
>>> 10//4 # Python 3 integer division
2
模 %(= 余数)
模是整数除法的余数
>>> 7%5 # = What is the remainder of the division of 7 by 5
2
>>> 8%5
3
>>> 10%5
0
【讨论】:
/
在python2中只是整数除法。
这是正确的,马特,相应地更新了答案。【参考方案2】:
您正在使用模运算 7%5 = 2
正确
对于整数除法,您必须使用“//”,例如:7//5
。如果您想要结果为浮点数,您可以使用7/5
。
【讨论】:
以上是关于整数除法 (%) Python 中是不是存在错误?的主要内容,如果未能解决你的问题,请参考以下文章