Python Modulo

Summary: in this tutorial, you’ll learn about the Python modulo operator (%) and how to use it effectively.

Introduction to the Python modulo operator

Python uses the percent sign (%) as the modulo operator. The modulo operator always satisfies the following equation:

N = D * ( N // D) + (N % D)Code language: JavaScript (javascript)

In this equation:

If both N and D are positive integers, the modulo operator returns the remainder of N / D. However, it is not the case for the negative numbers. Therefore, you should always stick with the above equation.

Simple Python modulo operator examples

The following example illustrates how to use the modulo operator (%) with positive integers:

a = 16
b = 5

m = a % b
f = a // b

# show the result

print(f'{a} % {b} = {m}')  # 1
print(f'{a} // {b} = {f}')  # 3Code language: Python (python)

Output:

1
3

For positive numbers, the result is quite apparent. And you can check the equation quickly:

16 = 5 * (16 // 5) + 16 % 5
16 = 5 * 3         + 1Code language: JavaScript (javascript)

The following shows how to use the modulo operator (%) with negative integers:

a = -16
b = 5

m = a % b
f = a // b

# show the result

print(f'{a} % {b} = {m}')  # 4
print(f'{a} // {b} = {f}')  # -4Code language: Python (python)

And the equation is satisfied:

-16 = 5 * (-16 % 5) + (-16) % 5
-16 = 5 * -4        - 4

Practical Python modulo operator examples

Let’s take some practical examples of using the modulo operator (%)

1) Using the modulo operator to check if a number is even or odd

The following defines a function that uses the modulo operator (%) to check if a number is even:

def is_even(num):
    return num % 2 == 0
Code language: Python (python)

And the following defines a function that uses the modulo operator to check if a number is odd:

def is_odd(num):
    return num % 2 != 0
Code language: JavaScript (javascript)

2) Using the modulo operator to convert units

The following example uses the modulo operator (%) to convert seconds to days, hours, minutes, and seconds. It can be handy if you want to develop a countdown program:

from math import floor


def get_time(total_seconds):
    return {
        'days': floor(total_seconds / 60 / 60 / 24),
        'hours': floor(total_seconds / 60 / 60) % 24,
        'minutes': floor(total_seconds / 60) % 60,
        'seconds': total_seconds % 60,
    }


print(get_time(93750))Code language: Python (python)

Output:

{'days': 1, 'hours': 2, 'minutes': 2, 'seconds': 30}Code language: JavaScript (javascript)

Summary

  • Python uses the percent sign (%) as the modulo operator.
  • The modulo operator (%) always satisfies the equation N = D * ( N // D) + (N % D).
Did you find this tutorial helpful ?