Python 101
The Python 101 course is designed for someone aspiring to build a career as a data engineer, analyst, or data scientist. This course covers fundamental Python concepts, from writing your first script through to building reusable code, working with data, and handling errors like a professional.
Intro
The Python 101 course is designed for someone aspiring to build a career as a data engineer, analyst, or data scientist. This course covers fundamental Python concepts, from writing your first script through to building reusable code, working with data, and handling errors like a professional.
By the end of the course, you will be writing clean, structured Python programs, working with real data, and using Python to solve practical problems.
If you like this course and want to support the project, you can do so here:
Recommended Tools
- VS Code with the Python extension
- Python 3.10+
You may also use any other editor or IDE you feel comfortable with, such as PyCharm or Jupyter Notebook.
Setup
To participate please fork the repo and follow one of the setup documents. Please save your exercises here. Also while going through the course if you find an issue or think of an improvement please log an issue here.
Grades
Grades have been added to help break your journey into helpful sections. Each section will cover different skill levels and will help you demonstrate your ability to other people.
Grade 1: Introduction to Python
- What is Python: What Python is and why it matters.
- Your First Script: Writing and running a Python file.
- Variables and Data Types: Storing values with the right type.
- User Input and Print: Getting input and displaying output.
Grade 2: Control Flow
- Comparison and Logical Operators: Using
==,!=,and,or,not. - If Statements: Making decisions with
if,elif, andelse. - For Loops: Iterating with
forandrange. - While Loops: Repeating code with
while.
Grade 3: Data Structures
- Lists: Creating and manipulating ordered collections.
- Tuples: Immutable sequences and when to use them.
- Dictionaries: Key-value data storage and lookup.
- Sets: Unique collections and set operations.
Grade 4: Functions
- Defining Functions: Writing reusable blocks of code with
def. - Parameters and Return Values: Passing data in and out of functions.
- Scope: Understanding local and global variables.
- Lambda Functions: Writing short anonymous functions.
Grade 5: Working with Files and Modules
- Reading and Writing Files: Opening, reading, writing, and closing files.
- Working with CSV Files: Reading and writing CSV data with the
csvmodule. - Importing Modules: Using Python's standard library.
- Creating Your Own Modules: Organising code across multiple files.
Grade 6: Error Handling and Debugging
- Errors and Exceptions: Understanding what goes wrong and why.
- Try and Except: Catching and handling exceptions gracefully.
- Raising Exceptions: Throwing your own errors when needed.
- Debugging Techniques: Using print statements, breakpoints, and reading tracebacks.
Grade 7: Object-Oriented Programming
- Classes and Objects: Defining classes and creating instances.
- Attributes and Methods: Storing state and defining behaviour.
- Inheritance: Building on existing classes.
- Dunder Methods: Customising built-in behaviour with
__init__,__str__, and others.
Grade 8: Package Management and Virtual Environments
- What is pip: Installing and managing packages.
- Virtual Environments: Isolating project dependencies with
venv. - uv: A faster alternative for managing packages and environments.
- requirements.txt and pyproject.toml: Tracking and sharing your project's dependencies.
Grade 9: Extras
In this section we will cover library-specific topics that are widely used in data roles. These are optional extensions — go as deep as you like.