%在计算中是什么?我不知道它是做什么的。
它能算出计算的百分比吗例如4% 2显然等于0。如何?
%在计算中是什么?我不知道它是做什么的。
它能算出计算的百分比吗例如4% 2显然等于0。如何?
当前回答
X % y计算除法X除以y的余数,其中商为整数。余数是y的符号。
在Python 3上,计算结果为6.75;这是因为/做的是真除法,而不是像Python 2中那样(默认情况下)的整数除法。在Python 2上,1 / 4给出0,因为结果是四舍五入。
整数除法也可以在python3上执行,使用//操作符,因此要得到7,你可以执行:
3 + 2 + 1 - 5 + 4 % 2 - 1 // 4 + 6
此外,在python2中,只需添加该行,就可以获得Python样式划分
from __future__ import division
作为每个源文件中的第一行源代码。
其他回答
我发现掌握模运算符(%)最简单的方法是通过长除法。它是余数,在确定一个数是偶数还是奇数时很有用:
4%2 = 0
2
2|4
-4
0
11%3 = 2
3
3|11
-9
2
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://docs.python.org/reference/expressions.html
示例1: 6%2的结果为0,因为如果6除以2,没有余数(3倍)。
例2:7%2的结果是1,因为当7除以2(3次)时,余数是1。
总结一下,它返回除法运算的余数,如果没有余数,则返回0。6%2意味着6的余数除以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,因为我们在做整数运算。
此外,还有一个有用的内置函数divmod:
divmod (a, b) 取两个(非复数)数字作为参数并返回一对数字 由它们的商和组成 使用长除法时的余数。
有点偏离主题,%也用于字符串格式化操作,如%=,将值替换为字符串:
>>> x = 'abc_%(key)s_'
>>> x %= {'key':'value'}
>>> x
'abc_value_'
同样,跑题了,但它似乎是一个小小的文档特性,我花了一段时间才找到,我认为它与python模数计算有关,这个SO页面在这方面排名很高。