找到数字的除法余数

时间:2011-04-07 16:44:17

标签: python integer-division

我怎样才能在Python中找到数字的除法余数?

例如:
如果数字是26并且分数是7,那么除数余数是5 (因为7 + 7 + 7 = 21和26-21 = 5。)

13 个答案:

答案 0 :(得分:171)

可以使用运算符%

发现除法的其余部分
>>> 26%7
5

如果你需要商和模数,那就是内置divmod函数:

>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)

答案 1 :(得分:153)

您正在寻找模运算符:

a % b

例如:

26 % 7

当然,也许他们希望你自己实施,这也不会太难。

答案 2 :(得分:28)

26%7(你会得到余额)

26/7(你将获得除数可以是浮动值)

26 // 7(你只得到除数整数值))

答案 3 :(得分:14)

如果你想避免使用模数,你也可以使用四种基本操作的组合:)

26 - (26 // 7 * 7) = 5

答案 4 :(得分:10)

从Python 3.7开始,有一个新的math.remainder()函数:

from math import remainder
print(remainder(26,7))

引用documentation

  

数学。余数(x,y)

     

返回IEEE 754样式的x余数   尊重你。对于有限x和有限非零y,这是   差x - n * y,其中n是与精确值最接近的整数   商x / y。如果x / y正好在两者之间   连续的整数,最近的偶数整数用于n。该   余数r =余数(x,y)因此总是满足abs(r)<= 0.5 *   ABS(Y)。

     

特殊情况遵循IEEE 754:特别是余数(x,math.inf)   是任何有限x的x,余数(x,0)和余数(math.inf,x)   引发任何非NaN x的ValueError。如果剩下的结果   操作为零,该零将与x具有相同的符号。

     

在使用IEEE 754二进制浮点的平台上,结果如此   操作总是完全可以表示:没有舍入错误   引入的。

Issue29962描述了创建新功能的基本原理。

答案 5 :(得分:4)

分割时使用%而不是/。这将为您返回剩余部分。所以在你的情况下

26 % 7 = 5

答案 6 :(得分:3)

模数将是正确的答案,但如果你手动这样做,这应该有效。

num = input("Enter a number: ")
div = input("Enter a divisor: ")

while num >= div:
    num -= div
print num

答案 7 :(得分:2)

我们可以通过使用模运算符(%)

来解决这个问题

26%7 = 5;

但 26/7 = 3因为它会给出商,但%运算符会给出余数。

答案 8 :(得分:2)

您可以使用模运算符找到余数 例子

a=14
b=10
print(a%b)

它将打印4

答案 9 :(得分:0)

如果你想要除法的其余部分,只需使用实际的余数规则,就像在数学中一样。当然,这不会给你一个十进制输出。

valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)

如果您想以计算器格式制作,只需替换valone = 8valone = int(input("Value One"))。对valtwo = 3做同样的事情,但明显不同的可用物品。

答案 10 :(得分:0)

如果要在一行代码中获得商和余数(更多用例),请使用:

quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)

答案 11 :(得分:0)

这是 Python 中余数的整数版本,它应该给出与 C 的“%”运算符相同的结果:

def remainder(n, d):
    return (-1 if n < 0 else 1) * (abs(n) % abs(d))

预期结果:

remainder(123, 10)   ==  3
remainder(123, -10)  ==  3
remainder(-123, 10)  == -3
remainder(-123, -10) == -3

答案 12 :(得分:-1)

您可以定义一个函数并使用2个值(如rem(number1,number2))返回其剩余数,以返回number1%number2 然后创建一阵子并将其设置为true,然后为保持数字1和2的函数打印出两个输入,然后打印(rem(number1,number2)