2009-06-13 9 views
83

¿Hay una función de módulo en la biblioteca python math?Cómo calcular un mod b en python?

¿No es 15 % 4, 3? Pero 15 mod 4 es 1, ¿verdad?

+4

3 es igual a 15 mod 4. –

+0

Probablemente estés pensando que (15 mod 4 = -1) que es lo mismo que decir (15 mod 4 = 3) –

+12

Cuidado: (-41)% 3 == -2 en C, pero (-41)% 3 == 1 en Python http://stackoverflow.com/questions/828092/python-style-integer-division-modulus-in-c – jfs

Respuesta

133

Está el signo %. No es solo por el resto, es la operación de módulo.

9

¿Por qué no usa%?


print 4 % 2 # 0 
16

mod = a % b

Esto almacena el resultado de a mod b en la variable mod.

Y tienes razón, 15 mod 4 es 3, que es exactamente lo vuelve Python:

>>> 15 % 4 
3 

@Macarse: Sí, pero eso es cierto para cualquier \ = construir en Python, así que hay que pensar que no hay necesito señalar eso por separado para el módulo.

+1

Nota: a% = b también es válido . – Macarse

27
>>> 15 % 4 
3 
>>> 

El módulo da el resto después de la división entera.

35

también puede probar divmod(x, y) que devuelve una tupla (x/y, x % y)

2

No creo que estés comprender plenamente módulo. a % b y a mod b son solo dos formas diferentes de expresar modulo. En este caso, python usa %. No, 15 mod 4 no es 1, 15 % 4 == 15 mod 4 == 3.

+0

no debería ser: 15% 4 == 15 mod 4 == 3? –

Cuestiones relacionadas