【问题标题】: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 中的整数除法是//

标签: integer-division


【解决方案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

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2011-04-24
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多