PYTHON

Python Modulo Operator: Syntax, Usage, and Examples

The Python modulo operator is a basic arithmetic operator used to calculate the remainder of a division operation. This operator plays a vital role in many programming tasks, from checking even or odd numbers to building loops and managing cyclic operations. Once you understand how the modulo operator works, you can apply it effectively in a wide range of situations.


What Is the Python Modulo Operator?

The Python modulo operator, represented by the percent symbol %, returns the remainder of a division. It's used with numeric values and is especially useful when you need to determine divisibility, set conditions based on repeating intervals, or wrap values within a specific range.

Example:

remainder = 10 % 3
print(remainder)  # Output: 1

In this example, 10 divided by 3 equals 3 with a remainder of 1. The modulo operation returns the 1.


Syntax of the Modulo Operator in Python

The syntax is straightforward:

a % b
  • a: Dividend
  • b: Divisor
  • Returns: Remainder of the division

The expression reads as “a modulo b” or “a mod b.”


Understanding Modulo Behavior

To grasp the behavior of the modulo Python provides, it's important to understand how the result is computed in different scenarios.

Positive Numbers

print(9 % 4)  # Output: 1

Here, 9 divided by 4 gives 2 with a remainder of 1.

When the Dividend Is Smaller Than the Divisor

print(3 % 5)  # Output: 3

The divisor doesn't fit even once, so the entire dividend is the remainder.

Using Zero as a Divisor

print(10 % 0)  # Raises ZeroDivisionError

Modulo with a divisor of zero results in a runtime error.

Negative Numbers

Python follows a specific rule: the result has the same sign as the divisor.

print(-10 % 3)   # Output: 2
print(10 % -3)   # Output: -2

Understanding the signs of the operands is crucial for avoiding logic errors.


Checking Even or Odd Numbers

One of the most common uses of the Python modulo operator is to determine if a number is even or odd.

number = 7
if number % 2 == 0:
    print("Even")
else:
    print("Odd")

This pattern is foundational and frequently used in programming challenges and real-world scenarios.


Loop-Based Examples with Modulo

The modulo operator shines in loop conditions, especially when you're executing actions every N iterations.

Example: Print every third item

items = ["a", "b", "c", "d", "e", "f", "g"]
for i in range(len(items)):
    if i % 3 == 0:
        print(items[i])

This will print index 0, 3, and 6 — a simple demonstration of modulo in Python loops.


Using Modulo in Time-Based Calculations

If you're cycling through days of the week or minutes on a clock, the Python modulo operator is ideal.

Example: Wrap days of the week

days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
current_day = 5  # Saturday
offset = 3
new_day = days[(current_day + offset) % 7]
print(new_day)  # Output: Tuesday

This is particularly useful in scheduling, simulations, or round-robin algorithms.


Applying Modulo to Lists

Use modulo Python functionality to cycle through list elements.

Example: Circular index access

colors = ["red", "blue", "green"]
for i in range(10):
    print(colors[i % len(colors)])

This wraps around the list, allowing you to repeat its elements infinitely.


Using Modulo for Batching and Grouping

You can divide data into groups or batches using the modulo operator.

Example: Group students into 3 groups

students = ["Anna", "Ben", "Cara", "Dan", "Eva", "Frank"]
groups = {0: [], 1: [], 2: []}
for i, student in enumerate(students):
    groups[i % 3].append(student)

print(groups)

This technique is great for distributing items evenly.


Using Modulo with Booleans and Flags

Use the modulo operator Python provides to trigger actions based on boolean patterns.

Example: Toggle behavior every second iteration

for i in range(6):
    if i % 2 == 0:
        print("Tick")
    else:
        print("Tock")

This results in alternating output using the modulo pattern.


Real-World Example: FizzBuzz Problem

The modulo operator plays a central role in the classic FizzBuzz challenge.

Example:

for i in range(1, 16):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

This showcases how modulo in Python can be used in complex logical conditions.


Modulo in Mathematical Operations

Aside from programming use cases, modulo has mathematical applications:

  • Hash functions
  • Cyclic group theory
  • Number theory
  • Algorithms like Euclid’s GCD

Example: GCD using modulo

def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a

Understanding the mathematical basis helps you apply Python modulo in algorithms.


Using Modulo with Custom Classes

Python allows customization of the modulo operator using the __mod__ method.

Example:

class Mod:
    def __init__(self, value):
        self.value = value

    def __mod__(self, other):
        return Mod(self.value % other)

    def __str__(self):
        return str(self.value)

m = Mod(13)
print(m % 5)  # Output: 3

This enables advanced control when creating domain-specific data types.


Common Errors with Modulo

  • Using zero as a divisor
  • Expecting floating-point results from integers
  • Misunderstanding behavior with negative operands

print(-7 % 3)  # Output: 2

Python's result keeps the sign of the divisor. Always test with negative inputs to avoid logical bugs.


Performance Considerations

The modulo operator is highly optimized and runs in constant time (O(1)) for standard numeric types. It has negligible overhead, making it ideal for tight loops, real-time computations, and systems that require fast condition checks.


Summary

The Python modulo operator provides a simple yet powerful way to compute remainders, manage cyclic conditions, group data, and build efficient logic into your programs. You've learned how to use the Python modulo operator across different contexts—from checking even numbers to custom objects.

Understanding how modulo in Python works gives you another tool for clean, optimized, and elegant code.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster