Comment calculer un mod b en Python?

151

Existe-t-il une fonction modulo dans la mathbibliothèque Python ?

N'est-ce pas 15 % 4, 3? Mais 15 mod 4est-ce 1, non?

Péquenaud
la source
6
3 équivaut à 15 mod 4.
Paul Fisher
2
Vous pensez probablement que (15 mod 4 = -1) ce qui revient à dire (15 mod 4 = 3)
Nathan Fellman
16
Attention: (-41)% 3 == -2 en C, mais (-41)% 3 == 1 en Python stackoverflow.com/questions/828092/…
jfs

Réponses:

240

Voilà le %signe. Ce n'est pas seulement pour le reste, c'est l'opération modulo.

Eduffy
la source
57

vous pouvez également essayer divmod(x, y)lequel renvoie un tuple(x // y, x % y)

uolot
la source
37
>>> 15 % 4
3
>>>

Le modulo donne le reste après la division entière.

Bill le lézard
la source
25

mod = a % b

Cela stocke le résultat de a mod bdans la variable mod.

Et vous avez raison, 15 mod 4c'est 3, ce qui est exactement ce que retourne python:

>>> 15 % 4
3

a %= b est également valable.

Merijn
la source
9

Pourquoi n'utilisez-vous pas%?


print 4 % 2 # 0
Géo
la source
5

Je ne pense pas que vous comprenez pleinement modulo. a % bet ne a mod bsont que deux manières différentes d'exprimer modulo. Dans ce cas, python utilise %. Non, 15 mod 4n'est pas 1, 15 % 4 == 15 mod 4 == 3.

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

production:

1
1
0
0
Nehal Pawar
la source