在Python中,如何找到一个数的除法余数?
例如:
如果这个数是26,除数是7,那么除法余数就是5。
(因为7+7+7=21,26-21=5。)
如果要进行简单的可除性测试,请参见如何检查一个数是否能被另一个数整除?。
在Python中,如何找到一个数的除法余数?
例如:
如果这个数是26,除数是7,那么除法余数就是5。
(因为7+7+7=21,26-21=5。)
如果要进行简单的可除性测试,请参见如何检查一个数是否能被另一个数整除?。
你需要使用模运算符:
a % b
例如:>>> 26 % 7
5
当然,也许他们希望您自己实现它,这也不会太难。-10 % 3 == 2
。但是 a/b*b + a%b == a
仍然成立,因为Python始终向负无穷大四舍五入,而不像其他一些语言向零舍入但会返回-1。 - marcelj可以使用运算符%
来获取两个数相除的余数:
>>> 26%7
5
如果您需要商和余数,可以使用内置的divmod
函数:
>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)
26 % 7
(你将得到余数)
26 / 7
(你将得到被除数,可能是浮点值)
26 // 7
(你将得到被除数,只能为整数值)
divisor, remainder = 26 <运算符> 7
(注:这里的“运算符”需要替换为实际的除法运算符,因为中文无法确定是哪一个符号) - Guimoute如果你想在一行代码中获取商和余数(更通用的用法), 可以使用:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
quotient = dividend // divisor
- Pedram从Python 3.7开始,新增了math.remainder()
函数:
from math import remainder
print(remainder(26,7))
输出:
-2.0 # not 5
请注意,如上所述,这不同于%
。
引用文档:
math.remainder(x, y)
返回 x 除以 y 后的 IEEE 754 样式余数。 对于有限的 x 和有限的非零 y,这是差异 x - n*y,其中 n 是商 x / y 的精确值的最接近整数。 如果 x / y 恰好介于两个连续整数的中间,则选择最近的偶数整数作为 n。 因此,余数 r = remainder(x, y) 总是满足 abs(r) <= 0.5 * abs(y)。
特殊情况遵循 IEEE 754:特别是,remainder(x, math.inf) 对于任何有限的 x 都是 x,而 remainder(x, 0) 和 remainder(math.inf, x) 对于任何非 NaN x 都会引发 ValueError。 如果除余运算的结果为零,则该零将与 x 具有相同的符号。
在使用 IEEE 754 二进制浮点数的平台上,此操作的结果始终是完全可表示的:不会引入舍入误差。
Issue29962描述了创建这个新函数的基本原理。
- Dominic Barracloughmath.remainder(-2.99,2) -0.9900000000000002 math.remainder(-3,2) 1.0
如果你想避免使用取模运算,你也可以使用四则运算的组合 :)
26 - (26 // 7 * 7) = 5
在除法计算时,使用%代替/。这将返回给你余数。因此,在您的情况下:
26 % 7 = 5
取模运算是正确答案,但如果你手动计算的话,以下方法也可行。
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
a=14
b=10
print(a%b)
它将打印4