Introduzione
L'operazione modulo è un'operazione aritmetica che trova il resto della divisione di un numero per un altro. Il resto è chiamato modulo dell'operazione.
Ad esempio, 5 diviso 3 è uguale a 1, con un resto di 2 e 8 diviso 4 è uguale a 2, con un resto di 0.
Operatore Modulo Python
In Python, l'operatore modulo è rappresentato dal segno di percentuale (%
). La sintassi è la seguente:
num1 % num2
Ecco un esempio:
5 % 4
1
Se il divisore (il secondo argomento) è uguale a zero, ritornerà un ZeroDivisionError
:
5 % 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
L'operatore modulo accetta anche numeri mobili come argomenti:
6.8 % 3.4
0.0
Durante la formattazione delle stringhe, il carattere %
rappresenta l'operatore di interpolazione.
Esempi
Uno dei casi d'uso più comuni dell'operatore modulo è verificare se un numero è pari o dispari. Se un numero diviso per 2 non ha resto, allora è un numero pari. Altrimenti, se lascia un resto di 1, il numero è dispari:
num = 11
if (num % 2) == 0:
print(num, "is even")
else:
print(num, "is odd")
Se esegui il codice sopra, 11 % 2
lascia un resto di 1 e il codice all'interno dell'istruzione else
viene eseguito:
(11, 'is odd')
Ecco un altro esempio, che mostra come verificare se un numero è un numero primo, usando l'operatore modulo. Un numero primo è un numero intero positivo che può essere diviso, senza resto, solo per se stesso e per 1:
def isPrimeNumber(num):
if num < 1:
return False
for i in range(2, num):
if (num % i) == 0:
return False
else:
return True
Innanzitutto, stiamo verificando se il numero num
è un numero positivo. Stiamo quindi verificando se il numero è divisibile per un altro numero nell'range da 2
a num
senza un promemoria. Se nessuna delle condizioni è soddisfatta, il numero è primo.
L'operatore modulo può anche essere utilizzato per convertire unità di misura. L'esempio seguente mostra come convertire i secondi in minuti:
def secondsToMinutes(sec):
seconds = sec // 60
minutes = sec % 60
return "%d minutes and %d seconds" % (minutes, seconds)
secondsToMinutes(657)
'57 minutes and 10 seconds'
La doppia barra (//
), l'operatore di divisione del piano arrotonda il risultato al numero intero più vicino.
Conclusione
In questo articolo, ti abbiamo mostrato come usare l'operatore modulo di Python.