我怎样才能在 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
当然,也许他们希望你自己实现它,这也不会太难。
可以使用运算符发现除法的其余部分%
:
>>> 26%7
5
如果您需要商和模,则有内置divmod
函数:
>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)
26 % 7
(你会得到余数)
26 / 7
(你会得到除数,可以是浮点值)
26 // 7
(你会得到除数,只有整数值)
如果您想在一行代码中获得商和余数(更通用的用例),请使用:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
从 Python 3.7 开始,有一个新math.remainder()
功能:
from math import remainder
print(remainder(26,7))
输出:
-2.0 # not 5
请注意,如上所述,它与%
.
引用文档:
数学。余数(x, y)
返回 x 相对于 y 的 IEEE 754 样式余数。对于有限 x 和有限非零 y,这是 x - n*y 的差值,其中 n 是与商 x / y 的精确值最接近的整数。如果 x / y 正好在两个连续整数的中间,则使用最接近的偶数表示 n。因此,余数 r = 余数(x,y)总是满足 abs(r) <= 0.5 * abs(y)。
特殊情况遵循 IEEE 754:特别是,对于任何有限 x,remainder(x, math.inf) 是 x,对于任何非 NaN x,remainder(x, 0) 和 remaining(math.inf, x) 会引发 ValueError。如果余数运算的结果为零,则该零的符号与 x 相同。
在使用 IEEE 754 二进制浮点的平台上,此操作的结果始终可以精确表示:不引入舍入误差。
Issue29962描述了创建新函数的基本原理。
如果你想避免取模,你也可以结合使用四个基本操作:)
26 - (26 // 7 * 7) = 5
除法时使用 % 而不是 /。这将为您返回剩余部分。所以在你的情况下
26 % 7 = 5
我们可以通过使用模运算符 (%) 来解决这个问题
26 % 7 = 5;
但是 26 / 7 = 3 因为它会给出商但 % 运算符会给出余数。
模数将是正确的答案,但如果您手动进行,这应该可以。
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
如果您想要除法问题的余数,只需使用实际的余数规则,就像在数学中一样。当然这不会给你一个十进制输出。
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
如果您想以计算器格式制作,只需替换valone = 8
为valone = int(input("Value One"))
. 对 做同样的valtwo = 3
事情,但显然不同的变量。
这是 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
您可以定义一个函数并使用 2 个值(例如 rem(number1,number2) 返回 number1%number2 然后创建一段时间并将其设置为 true 然后为您的函数打印出两个输入,其中包含数字 1 和 2 然后 print(rem (编号 1,编号 2)