Python Courses

Gain practical, real-world Python skills with our library of Python video courses.

Our tutorials are created, curated, and vetted by a community of expert Pythonistas. At Real Python you'll get the trusted resources you need on your path to Python mastery.

With new content published weekly, you'll always find something new to boost your programming skills.

You can mark individual lessons as completed or in-progress and learn at your own comfortable pace. Bookmark interesting lessons and review them later for optimum long-term retention.

— Now Available —

Intermediate Python

Immutability in Python

In Python, immutable vs mutable data types and objects types can cause some confusion—and weird bugs. With this course you'll see what the difference between mutable and immutable data types is in Python, and how you can use it to your advantage in your own programs.

Async IO in Python: A Complete Walkthrough

Hands-on Python 3 Concurrency With the asyncio Module

Chyld Medford

Chyld Medford 12 Lessons 1h 3m
advanced python

Learn how to speed up your Python 3 programs using concurrency and the asyncio module in the standard library. See step-by-step how to leverage concurrency and parallelism in your own programs, all the way to building a complete HTTP downloader example app using asyncio and aiohttp.

Python String Formatting

Python String Formatting Tips & Best Practices

Learn the four main approaches to string formatting in Python, as well as their strengths and weaknesses. You'll also get a simple rule of thumb for how to pick the best general purpose string formatting approach in your own programs.

How to Run Your Python Scripts

Running Python Scripts

Darren Jones

Darren Jones 7 Lessons 18m
basics python

This step-by-step course will guide you through a series of ways to run Python scripts, depending on your environment, platform, needs, and skills as a programmer.

Python Development in Visual Studio Code

Python Development in Visual Studio Code (Setup Guide)

Learn how to set up Visual Studio Code for Python development. By following examples, you'll cover everything from installing and configuring VSCode, to running tests and debugging Python apps.

Pandas Tricks

Idiomatic Pandas: Tricks & Features You May Not Know

In this course you'll see how to use some lesser-used but idiomatic Pandas capabilities that lend your code better readability, versatility, and speed.

Working With JSON Data in Python

Working With JSON Data in Python

Learn how to work with Python's built-in "json" module to serialize the data in your programs into JSON format. Then, you'll deserialize some JSON from an online API and convert it into Python objects.

Django Migrations: A Primer

Django Migrations 101

Darren Jones

Darren Jones 8 Lessons 13m

With this course you’ll get comfortable with Django migrations and learn how to create database tables without writing any SQL, how to automatically modify your database after you changed your models, and how to revert changes made to your database.

Python Best Practices Artwork

Documenting Python Projects With Sphinx and Read The Docs

In this video series we'll cover creating Python documentation from scratch using Sphinx, as well as getting your code repository hooked up to Read The Docs, to automatically build and publish your code documentation.

OOP in Python 3

Intro to Object-Oriented Programming (OOP) in Python

In this video series, you'll learn the fundamentals of object-oriented programming (OOP) in Python and how to work with classes, objects, and constructors.

Python Decorators

Python Decorators 101

Chris Bailey

Chris Bailey 20 Lessons 1h 7m
intermediate python

In this course on Python decorators, you'll learn what they are and how to create and use them. Decorators provide a simple syntax for calling higher-order functions in Python. By definition, a decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.

Writing Comments in Python (Guide)

Writing Comments in Python

Learn how to write Python comments that are clean, concise, and useful. Quickly get up to speed on what the best practices are, which types of comments it's best to avoid, and how you can practice writing cleaner comments.

Python’s Requests Library (Guide)

Making HTTP Requests With Python

The "requests" library is the de facto standard for making HTTP requests in Python. It abstracts the complexities of making requests behind a beautiful, simple API so that you can focus on interacting with services and consuming data in your application. This course shows you how to work effectively with "requests", from start to finish.

An Introduction to Python Exceptions

Introduction to Python Exceptions

Darren Jones

Darren Jones 3 Lessons 13m
basics python

Learn what exceptions are good for in Python. You'll see how to raise exceptions and how to handle them with "try/except" blocks.

How to Write Beautiful Python Code With PEP 8

Writing Beautiful Pythonic Code With PEP 8

Learn how to write high-quality, readable code by using the Python style guidelines laid out in PEP 8. Following these guidelines helps you make a great impression when sharing your work with potential employers and collaborators. This course outlines the key guidelines laid out in PEP 8. It's aimed at beginner to intermediate programmers.

F-Strings in Python 3.6

Python 3's f-Strings: An Improved String Formatting Syntax

Chris Bailey

Chris Bailey 8 Lessons 22m
basics python

As of Python 3.6, f-strings are a great new way to format strings. Not only are they more readable, more concise, and less prone to error than other ways of formatting, but they are also faster! By the end of this course, you'll know how and why to start using f-strings today.

Python Best Practices Artwork

Idiomatic Python 101

Python Idioms for people coming from other languages and how to improve your idiomatic practices with Python. We will cover things to do with string concatenation, dictionary look ups, dealing with Python scripts and encoding.

13 Project Ideas for Intermediate Python Developers

Pythonic OOP String Conversion: __repr__ vs __str__

Dan Bader

Dan Bader 7 Lessons 13m
intermediate python

In this tutorial series you'll do a deep dive on how Python's to-string conversion using the __repr__ and __str__ "magic methods" works and how you can add implement them in your own classes and objects.

Getting Started With Testing in Python

Test-Driven Development With PyTest

In this hands-on course, you’ll see how to create Python unit tests, execute them, and find the bugs before your users do. You’ll learn about the tools available to write and execute tests, check your application’s performance, and even look for security issues.

Python Data Science Artwork

Introduction to Pandas and Vincent

Get an introduction to pandas and its two main data structures as well as how to visualize your data using vincent once you are done munging it with pandas.

An Introduction to Python Exceptions

Python Exceptions 101

Mahdi Yusuf

Mahdi Yusuf 3 Lessons 12m
basics python

Learn the proper handling of Python exceptions as well as protecting yourself from when things go wrong. You'll also learn about how to clean up, after an exception occurs, as well as defining your own exception types when the need arises.

Python Data Science Artwork

Pandas DataFrames 101

Learn the basics of working with the Data Frame data structure in Pandas. We will touch on how to create new columns from existing data, delete unneeded data, how to import data from a cvs as well as a few examples of group-bys. We will be using basketball data from

Intermediate Python

Emulating switch/case Statements in Python

Dan Bader

Dan Bader 4 Lessons 10m
intermediate python

Python doesn't have switch/case statements so it's often necessary to write long if/elif/else chains as a workaround. Here's a little trick you can use to emulate switch/case statements in Python using dictionaries and first-class functions.

Advanced Python

Migrating Applications From Python 2 to Python 3

Mahdi Yusuf

Mahdi Yusuf 5 Lessons 16m
advanced python

In this course we discuss the process of converting a Python 2 application to Python 3. We go through the entire process of identifying incompatible differences as well as rectifying them. As well as a few migration strategies one might take to convert a Python 2 application to Python 3.

Intermediate Python

@staticmethod vs @classmethod in Python

In this course we'll discuss the difference between the `@staticmethod` and `@classmethod` decorators as well as their uses in Python. We cover a few examples on when to best use each, and how to deal with each when using subclasses.

Splitting, Concatenating, and Joining Strings in Python

Splitting, Concatenating, and Joining Strings in Python

Jackie Wilson

Jackie Wilson 4 Lessons 18m
basics python

In this course you'll some of the most fundamental string operations: splitting, concatenating, and joining. Not only will you learn how to use these tools, but you’ll walk away with a deeper understanding of how they work under the hood in Python.

Introduction to Python 3

Mastering While Loops

Katy Gibson

Katy Gibson 11 Lessons 26m
basics python

Master indefinite iteration using the Python "while" loop. You’ll be able to construct basic and complex while loops, interrupt loop execution with break and continue, use the else clause with a while loop, and deal with infinite loops.

Intermediate Python

Using List Comprehensions Effectively

Dan Bader

Dan Bader 8 Lessons 13m
intermediate python

This short course breaks down Python list comprehensions for you step by step. See how Python's comprehensions can be transformed from and to equivalent "for"-loops so you'll know exactly what's going on behind the scenes.

Python CSV Parsing

Reading and Writing CSV Files

This short course covers how to read and write data to CSV files using Python's built in `csv` module and the `pandas` library. You'll learn how to handle standard and non-standard data such as CSV files without headers, or files containing delimeters in the data.

Jupyter Notebook: An Introduction

Using Jupyter Notebooks

In this step-by-step course, you learn how to get started with The Jupyter Notebook, an open source web application that you can use to create and share documents that contain live code, equations, visualizations, and text.

Absolute vs Relative Imports in Python

Python Imports 101

Mahdi Yusuf

Mahdi Yusuf 5 Lessons 14m
basics python

Your introduction to Python's imports. We will touch on what actually happens when an import is called various ways of importing modules, touching on implicit relative imports vs explicit relative imports, and finally tips on how to avoid circular dependencies.

Introduction to Python 3

For Loops in Python (Definite Iteration)

Darren Jones

Darren Jones 4 Lessons 16m
basics python

Learn all about how to perform definite iteration with Python "for" loops. You’ll see how other programming languages implement definite iteration, learn about iterables and iterators, and tie it all together to learn about Python’s for loop.

Python Virtual Environments (venv)

Working With Python Virtual Environments

Dan Bader

Dan Bader 6 Lessons 8m
basics tools

This course demonstrates how Python's virtual environments work as a "sandbox" and you get a quick walkthrough on how to set up a new environment (or virtualenv, as they're called for short) and how to install third-party packages into it using the pip command.

Got feedback on our courses?