%在计算中是什么?我不知道它是做什么的。
它能算出计算的百分比吗例如4% 2显然等于0。如何?
%在计算中是什么?我不知道它是做什么的。
它能算出计算的百分比吗例如4% 2显然等于0。如何?
当前回答
模运算符,通常用于整数的余数除法,但在Python中可用于浮点数。
http://docs.python.org/reference/expressions.html
The % (modulo) operator yields the remainder from the division of the first argument by the second. The numeric arguments are first converted to a common type. A zero right argument raises the ZeroDivisionError exception. The arguments may be floating point numbers, e.g., 3.14%0.7 equals 0.34 (since 3.14 equals 4*0.7 + 0.34.) The modulo operator always yields a result with the same sign as its second operand (or zero); the absolute value of the result is strictly smaller than the absolute value of the second operand [2].
其他回答
这是一个模运算 http://en.wikipedia.org/wiki/Modulo_operation
http://docs.python.org/reference/expressions.html
根据运算的顺序,结果是
(3+2+1-5) + (4%) 2 - (1/4) + 6
(1) + (0) - (0) + 6
7
1/4=0,因为我们在做整数运算。
模量是一种数学运算,有时被描述为“时钟算术”。我发现把它简单地描述为一个余数是会误导和令人困惑的,因为它掩盖了它在计算机科学中被如此广泛使用的真正原因。它实际上是用来环绕循环的。
想象一个时钟:假设你看一个“军事”时间的时钟,时间范围从0点到23点59分。现在,如果你想在每天的午夜发生一些事情,你会希望当前时间mod 24为零:
如果(小时% 24 == 0):
你可以想象历史上所有的小时都围绕着24小时循环而今天的小时就是这个无限长的数字对24取余。它是一个比余数更深刻的概念,它是一种处理循环的数学方法,在计算机科学中非常重要。它还用于环绕数组,允许您增加索引,并在到达数组的末尾后使用模量返回到开头。
我很难轻易地找到% online使用的具体用例,例如。为什么分数模除法或负模除法会得到这样的结果。希望这有助于澄清以下问题:
一般情况下:
模除法返回数学除法运算的余数。它是这样做的:
假设我们有5的被除数和2的除数,下面的除法运算将是(等于x):
dividend = 5
divisor = 2
x = 5/2
模量计算的第一步是进行整数除法: X_int = 5 // 2 (python中的整数除法使用双斜杠) X_int = 2 接下来,将x_int的输出乘以除数: X_mult = x_int *除数 X_mult = 4 最后,从x_mult中减去红利 红利- x_mult = 1 因此,模运算返回1: 5% 2 = 1
应用程序将模数应用于分数
Example: 2 % 5
应用于分数时的模量计算与上述相同;但是,需要注意的是,当除数大于被除数时,整型除法的结果为零:
dividend = 2
divisor = 5
整数除法结果为0,而;因此,当执行上述步骤3时,红利的值将结转(从零减去):
dividend - 0 = 2 —> 2 % 5 = 2
应用程序将模量应用到负值
整除法发生时,整除法的值舍入到最小整数值:
import math
x = -1.1
math.floor(-1.1) = -2
y = 1.1
math.floor = 1
因此,当你做整数除法时,你可能会得到一个不同于你预期的结果!
将上述步骤应用于下面的除数和被除数,说明了模数的概念:
dividend: -5
divisor: 2
步骤1:应用整数除法
x_int = -5 // 2 = -3
第二步:用整数除数的结果乘以除数
x_mult = x_int * 2 = -6
第三步:从相乘的变量中减去红利,注意双重否定。
dividend - x_mult = -5 -(-6) = 1
因此:
-5 % 2 = 1
%是模。3% 2 = 1,4% 2 = 0
/是除法(在本例中为整数),因此:
3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
1 + 4%2 - 1/4 + 6
1 + 0 - 0 + 6
7
有点偏离主题,%也用于字符串格式化操作,如%=,将值替换为字符串:
>>> x = 'abc_%(key)s_'
>>> x %= {'key':'value'}
>>> x
'abc_value_'
同样,跑题了,但它似乎是一个小小的文档特性,我花了一段时间才找到,我认为它与python模数计算有关,这个SO页面在这方面排名很高。