2009-06-13 8 views
83

Esiste una funzione modulo nella libreria python math?Come calcolare un mod b in python?

Non è 15 % 4, 3? Ma 15 mod 4 è 1, giusto?

+4

3 uguale a 15 mod 4. –

+0

Probabilmente stai pensando che (15 mod 4 = -1) che è lo stesso che dire (15 mod 4 = 3) –

+12

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

risposta

133

C'è il segnale %. Non è solo per il resto, è l'operazione modulo.

9

Perché non usi%?


print 4 % 2 # 0 
16

mod = a % b

Questo memorizza il risultato della a mod b nella variabile mod.

E hai ragione, 15 mod 4 è 3, che è esattamente ciò che i rendimenti di pitone:

>>> 15 % 4 
3 

@Macarse: Sì, ma questo vale per qualsiasi \ = costruire in python, quindi dovrebbe pensare non c'è è necessario indicarlo separatamente per modulo.

+1

Nota: a% = b è valido anche . – Macarse

27
>>> 15 % 4 
3 
>>> 

Il modulo restituisce il resto dopo la divisione intero.

35

si può anche provare divmod(x, y) che restituisce una tupla (x/y, x % y)

2

Non credo che tu stia completamente afferrare modulo. a % b e a mod b sono solo due modi diversi per esprimere il modulo. In questo caso, python utilizza %. No, 15 mod 4 non è 1, 15 % 4 == 15 mod 4 == 3.

+0

non dovrebbe essere: 15% 4 == 15 mod 4 == 3? –

Problemi correlati