Python

Python is one of the most widely used programming languages in the world — powering everything from web applications and data science to automation scripts and game development. It's also one of the most beginner-friendly languages to learn, thanks to its clean, readable syntax that reads almost like plain English.

This is Cloodit's complete Python curriculum: 63 free worksheets covering everything from your very first print() statement through variables, data types, loops, functions, and all the way to object-oriented programming, file handling, and advanced data structures like dictionaries and sets. Each module includes real practice questions, worked examples, and a full answer key — not just definitions to memorize.

The modules are ordered to build on each other, so a complete beginner can work through them from Module 1 to Module 63 and come out the other side able to write real Python programs. Teachers can also assign these modules as a structured course — see the Python Journey below — with progress tracking, class sprints, and badges for students.

Whether you're a student working through the fundamentals, a teacher looking for ready-made worksheets with answer keys, or just brushing up on one specific topic, start with any module below or work straight through the full sequence. Planning a unit rather than the whole course? Each module maps to a single lesson-length concept, so you can pull just the ones your unit needs — Getting Started for an intro-to-programming unit, Control Flow for a conditionals-and-loops unit, Data Structures for a lists-and-dictionaries unit — without reworking your sequence.

Assign this whole curriculum to your class, or just the modules your unit needs — Cloodit tracks who's stuck automatically.

Getting Started (Modules 1–10)

Control Flow (Modules 11–20)

Functions (Modules 21–30)

Data Structures (Modules 31–40)

Advanced (Modules 41–63)

41
Sets – Operations Sets support mathematical operations: union |, intersection &, difference -, and subset tests
42
Nested Lists A nested list is a list that contains other lists as its elements
43
Lists + Dictionaries A list of dictionaries represents a table of records where each dict is one row
44
File Operations – Open open() opens a file and returns a file object; the with statement closes it automatically when done
45
File Operations – Read .read() reads the entire file content as a string; .readlines() reads lines into a list
46
File Operations – Write .write() writes a string to a file opened in write or append mode
47
Files – Error Handling (try/except) A try/except block around file operations catches FileNotFoundError and other IO errors
48
Creating Modules (.py files to import) A .py file becomes a module that other scripts can import to reuse its functions
49
OOP – Classes & Objects A class is a blueprint that defines structure and behaviour; an object is one instance created from that blueprint
50
OOP – __init__ Method __init__ is called automatically when an object is created and sets up its initial attributes
51
OOP – Methods A method is a function defined inside a class that operates on the object's data via self
52
OOP – String Representation (__str__) __str__ defines what is displayed when an object is passed to print() or str()
53
OOP – Practical Application A class models a real-world entity by combining related attributes and methods in one structure
54
OOP – Class Variables vs Instance Variables A class variable is shared across all instances; an instance variable is unique to each object
55
OOP – Private Attributes (underscore convention) Prefixing an attribute with _ signals it is private and should not be accessed directly from outside the class
56
OOP – Inheritance (basic) A child class inherits methods and attributes from a parent class by naming it in parentheses
57
Enumerations – Basics An Enum class defines a fixed set of named constants that each have a name and a value
58
Enumerations – Practical Use Enum members are used as meaningful, type-safe constants instead of raw strings or numbers
59
Tuples – Basics A tuple is an immutable ordered sequence of values defined with parentheses or commas
60
Tuples – Operations Tuples support indexing, slicing, and unpacking but cannot be modified after creation
61
Tuples – Practical Use Tuples group related fixed values, return multiple values from a function, and can be used as dictionary keys
62
Dictionaries – Advanced (comprehensions, merging) A dict comprehension builds a dictionary in one expression; the | operator merges two dicts
63
Sets – Advanced (frozen sets, set comprehensions) A set comprehension builds a set in one expression; frozenset() creates an immutable version of a set

Journeys using these modules

Or build your own Journey from any of these modules →

Frequently Asked Questions

Are these worksheets free?

Yes — every worksheet and its answer key is free to view, download, and print, with no account required to access any individual module.

Do I need an account?

No account is needed to view or print a worksheet. A free teacher account adds extras like assigning modules to a class and tracking progress automatically — it takes under three minutes to set up and doesn't need a credit card.

What year level is this for?

This curriculum is aligned to the Australian Curriculum (ACARA) and Victorian Curriculum, spanning roughly Years 3 to 10 — from first sequencing and variables through to object-oriented programming and advanced data structures. Start wherever matches your class's current level; each module builds on the last.

Can I print them?

Yes — every module has a one-click Print Worksheet button that generates a printable page with the practice questions and a full answer key.

Is this aligned to a curriculum?

Yes — the module sequence is mapped to the Australian Curriculum (ACARA) and Victorian Curriculum, and a class's progress is reported back against those curriculum bands (e.g. ACARA Years 5–6 sequencing and iteration, Years 7–8 functions and data structures), not just a generic difficulty scale.

Can students use this without a teacher?

Yes — students can start any module and practice directly, no class or account required. Joining a teacher's class with a class code adds progress tracking, class badges, and live Sprints, but isn't needed to work through the worksheets or modules solo.

Do I need to know Python myself to teach this?

No — every module comes with a full worked answer key, and Cloodit tracks who's stuck automatically, so you don't need to solve each exercise yourself before assigning it or be able to debug a student's work line by line.

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Cheetah' badge — Savannah Sprinter, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

For Teachers

Set this curriculum for your class and see who needs help, automatically.

Create a free teacher account →

No credit card. No setup fee. Make a class and invite students in under three minutes.

For Students

Practice this topic interactively, track progress, and unlock badges.

Start Learning Free →

Have a class code?