Unit 5 • Lesson 1

What Are Modules?

Overview

Modules are Python files that contain reusable code, such as functions and variables, which can be imported into other programs. You'll learn how they help break large projects into smaller components, making code easier to manage and debug, enabling you to write more organized and maintainable programs.

Beginner 15–20 min

What You Will Learn in This Lesson

By the end of this lesson, you will know:

  • What modules are: Understand that modules are Python files containing reusable code.
  • Why modules matter: Learn how modules help organize and reuse code.
  • How modules work: Discover how Python finds and loads modules.
  • Module benefits: Understand how modules make code more maintainable.

Why This Matters

So far, you've written all your code in single files. But as programs grow larger, putting everything in one file becomes messy and hard to manage. Modules let you split your code into separate files, each handling a specific task. This makes your code organized, reusable, and easier to understand. Think of modules like chapters in a book - each chapter focuses on one topic, making the whole book easier to navigate!

Step 1: What Is a Module?

A module is simply a Python file (ending in .py) that contains code you can reuse in other programs. It can contain functions, variables, classes, or any other Python code. When you import a module, Python runs the code in that file and makes its contents available to your program.

Example: A Simple Module
# File: math_utils.py (this is a module)
def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

PI = 3.14159
1

Module File

A module is just a regular Python file with a .py extension. The filename (without .py) becomes the module name.

2

Reusable Code

Modules contain code that can be used in multiple programs. Functions, variables, and classes defined in a module can be imported and used elsewhere.

3

Import and Use

Other Python files can import the module using import and then use its functions and variables.

Key Concept: A module is like a toolbox. Instead of rewriting the same tools (functions) in every program, you put them in a toolbox (module) and bring the toolbox with you whenever you need those tools. This saves time and keeps your code organized!

Mini Practice #1: Understanding Modules

Try It Yourself

Python comes with many built-in modules. Try importing the math module:

Press Run to see output

What happened? When you write import math, Python loads the math module and makes all its functions and variables available. You can then use them by writing math.pi, math.sqrt(), etc. The math. prefix tells Python you're using something from the math module!

Step 2: Why Use Modules?

Modules provide several important benefits:

Code Reusability

Write code once, use it in many programs. No need to copy and paste the same functions everywhere.

Organization

Split large programs into smaller, manageable files. Each module handles one specific task.

Maintainability

Fix bugs or update code in one place. All programs using that module automatically get the updates.

Namespace Separation

Avoid naming conflicts. Functions in different modules can have the same name without interfering.

Without Modules (Messy)
# Everything in one file - 1000+ lines!
def calculate_area():
    # ... 50 lines of code

def calculate_volume():
    # ... 50 lines of code

def process_data():
    # ... 200 lines of code

def generate_report():
    # ... 300 lines of code

# Main program
# ... 400 more lines
With Modules (Organized)
# geometry.py - handles shapes
def calculate_area():
    # ... 50 lines

def calculate_volume():
    # ... 50 lines

# data_processing.py - handles data
def process_data():
    # ... 200 lines

# reporting.py - handles reports
def generate_report():
    # ... 300 lines

# main.py - main program
import geometry
import data_processing
import reporting
# ... 50 lines

Step 3: How Python Finds Modules

When you write import math, Python searches for the module in specific locations:

1

Built-in Modules

Python first checks if it's a built-in module (like math, random, os). These come with Python and are always available.

2

Current Directory

Python checks the directory where your script is running. If you have a file called my_module.py in the same folder, Python can import it.

3

Python Path

Python checks directories listed in sys.path, which includes standard library locations and installed packages.

Module Search Order

Python searches in this order: 1) Built-in modules, 2) Current directory, 3) Directories in sys.path. The first match found is used. This means if you create a file called math.py in your current directory, it will be imported instead of Python's built-in math module - so be careful with naming!

Mini Practice #2: Exploring Module Contents

Try It Yourself

You can see what's inside a module using the dir() function:

Press Run to see output

What happened? The dir() function shows you all the names (functions, variables, etc.) available in a module. This is helpful when exploring what a module can do. The help() function shows documentation for specific functions, explaining what they do and how to use them!

Step 4: Types of Modules

There are three main types of modules in Python:

Built-in Modules

Come with Python installation. Examples: math, random, os, sys.

Usage: import math

Standard Library Modules

Part of Python's standard library but need to be imported. Examples: datetime, json, csv.

Usage: import datetime

Third-party Modules

Created by others and installed separately. Examples: numpy, requests, pandas.

Usage: pip install numpy then import numpy

Your Own Modules

Python files you create yourself. Any .py file can be a module.

Usage: Create my_module.py, then import my_module

End-of-Lesson Exercises

Exercise 1: Import and Use a Module

Import the random module and use it to generate a random number between 1 and 10. Print the result.

Use import random, then random.randint(1, 10).

Write your code above and click "Check Answer" to verify it's correct.

Exercise 2: Explore Module Contents

Import the random module and use dir() to see what functions it contains. Then use help() to get information about the choice() function.

Use dir(random) and help(random.choice).

Write your code above and click "Check Answer" to verify it's correct.