¿Cómo calcular un mod b en Python?

151

¿Hay una función de módulo en la mathbiblioteca de Python ?

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

Paleto
fuente
66
3 es igual a 15 mod 4.
Paul Fisher
2
Probablemente esté pensando que (15 mod 4 = -1) que es lo mismo que decir (15 mod 4 = 3)
Nathan Fellman
16
Cuidado: (-41)% 3 == -2 en C, pero (-41)% 3 == 1 en Python stackoverflow.com/questions/828092/…
jfs

Respuestas:

240

Ahí está la %señal. No es solo para el resto, es la operación de módulo.

eduffy
fuente
57

también puedes probar divmod(x, y)cuál devuelve una tupla(x // y, x % y)

uolot
fuente
37
>>> 15 % 4
3
>>>

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

Bill el lagarto
fuente
25

mod = a % b

Esto almacena el resultado de a mod ben la variable mod.

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

>>> 15 % 4
3

a %= b También es válido.

Merijn
fuente
9

¿Por qué no usas%?


print 4 % 2 # 0
Geo
fuente
5

No creo que estés entendiendo completamente el módulo. a % by a mod bson solo dos formas diferentes de expresar el módulo. En este caso, Python usa %. No, 15 mod 4no es 1, 15 % 4 == 15 mod 4 == 3.

UnsignedByte
fuente
1
A = [3, 1, 2, 4]
for a in A:
    print(a % 2)

salida:

1
1
0
0
Nehal Pawar
fuente