Como calcular um mod b em Python?

151

Existe uma função de módulo na mathbiblioteca Python ?

Não é 15 % 4, 3? Mas 15 mod 4é 1, certo?

caipira
fonte
6
3 é igual a 15 mod 4.
Paul Fisher
2
Você provavelmente está pensando que (15 mod 4 = -1), que é o mesmo que dizer (15 mod 4 = 3)
Nathan Fellman
16
Cuidado: (-41) 3% == -2 em C, mas (-41) 3% == 1 em Python stackoverflow.com/questions/828092/...
jfs

Respostas:

240

Aqui está o %sinal. Não é apenas para o restante, é a operação do módulo.

eduffy
fonte
57

você também pode tentar o divmod(x, y)que retorna uma tupla(x // y, x % y)

uolot
fonte
37
>>> 15 % 4
3
>>>

O módulo fornece o restante após a divisão inteira.

Bill the Lizard
fonte
25

mod = a % b

Isto armazena o resultado de a mod bna variável mod.

E você está certo, 15 mod 4é 3, que é exatamente o que o python retorna:

>>> 15 % 4
3

a %= b também é válido.

Merijn
fonte
9

Por que você não usa%?


print 4 % 2 # 0
Geo
fonte
5

Eu não acho que você está entendendo completamente o módulo. a % be a mod bsão apenas duas maneiras diferentes de expressar o módulo. Nesse caso, o python usa %. Não, 15 mod 4não é 1, 15 % 4 == 15 mod 4 == 3.

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

resultado:

1
1
0
0
Nehal Pawar
fonte