Python Video 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 —

Python Histogram Plots

Python Histogram Plotting: NumPy, Matplotlib, Pandas & Seaborn

In this course, you'll be equipped to make production-quality, presentation-ready Python histogram plots with a range of choices and features. It's your one-stop shop for constructing and manipulating histograms with Python's scientific stack.

Python Face Recognition and Face Detection

Traditional Face Detection With Python

In this course on face detection with Python, you'll learn about a historically important algorithm for object detection that can be successfully applied to finding the location of a human face within an image.

Beginner Tips for Learning Python

11 Beginner Tips for Learning Python

Darren Jones

Darren Jones 13 Lessons 37m
basics python

In this course, you'll see several learning strategies and tips that will help you jumpstart your journey towards becoming a rockstar Python programmer!

How to Iterate Through a Dictionary in Python

Dictionaries in Python

Paul Mealus

Paul Mealus 4 Lessons 20m
basics python

In this course on Python dictionaries, you'll cover the basic characteristics of dictionaries and learn how to access and manage dictionary data. Once you've finished this course, you'll have a good sense of when a dictionary is the appropriate data type to use and know how to use it.

Logging in Python

Logging in Python

In this video course, you'll learn why and how to get started with Python's powerful logging module to meet the needs of beginners and enterprise teams alike.

Python Best Practices Artwork

How to Write Pythonic Loops

In this course, you'll see how you can make your loops more Pythonic if you're coming to Python from a C-style language. You'll learn how you can get the most out of using range(), xrange(), and enumerate(). You'll also see how you can avoid having to keep track of loop indexes manually.

Reading and Writing Files in Python (Guide)

Reading and Writing Files in Python

In this course, you'll learn about reading and writing files in Python. You'll cover everything from what a file is made up of to which libraries can help you along that way. You'll also take a look at some basic scenarios of file usage as well as some advanced techniques.

Core Python Tutorials Artwork

Functional Programming in Python

Dan Bader

Dan Bader 32 Lessons 1h 25m
advanced python

In this course, you'll learn how to approach functional programming in Python. You'll cover what functional programming is, how you can use immutable data structures to represent your data, as well as how to use filter(), map(), and reduce().

Generating Random Data With Python

Generating Random Data in Python

In this course, you'll cover several options for generating random data in Python, and then build up to a comparison of each in terms of its level of security, versatility, purpose, and speed.

How to Publish an Open-Source Python Package to PyPI

How to Publish Your Own Python Package to PyPI

Learn how to create a Python package for your project and how to publish it to PyPI, the Python Package Repository with this step-by-step course. Quickly get up to speed on everything from naming your package to configuring it using

Python classmethods, staticmethods, and instance methods

OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods

Dan Bader

Dan Bader 7 Lessons 14m
intermediate python

What's the difference between @classmethod, @staticmethod, and "plain/regular" instance methods in Python? You'll know the answer after watching this video course.

Git Tips for Python Developers

Introduction to Git and GitHub for Python Developers

What is Git, what is GitHub, and what's the difference? Learn the basics of Git and GitHub from the perspective of a Pythonista in this step-by-step video course.

Continuous Integration with Python: An Introduction

Continuous Integration With Python

In this course, you'll learn the core concepts behind Continuous Integration (CI) and why they are essential for modern software engineering teams. Find out how to how set up Continuous Integration for your Python project to automatically create environments, install dependencies, and run tests.

Interactive Data Visualization in Python With Bokeh

Interactive Data Visualization in Python With Bokeh

This course will get you up and running with Bokeh, using examples and a real-world dataset. You'll learn how to visualize your data, customize and organize your visualizations, and add interactivity.

Introduction to Python 3

Installing Python on Windows, macOS, and Linux

Darren Jones

Darren Jones 8 Lessons 10m
basics python

To get started working with Python, you'll need to have access to the Python interpreter. There are several common ways to accomplish this and in this course, you will learn how to install the latest version of Python on your computer.

Intermediate Python

Writing Cleaner Python Code With PyLint

Dan Bader

Dan Bader 8 Lessons 17m
intermediate python

In this video series you'll see how to install and set up the PyLint code linter tool. You'll learn why you should use code linters like PyLint, Flake8, PyFlakes, or other static analysis tools—and how they can help you write cleaner and more Pythonic code.

Intermediate Python

Python Context Managers and the "with" Statement

Dan Bader

Dan Bader 6 Lessons 12m
intermediate python

In this course you'll learn how context managers and the "with" statement work in Python, including the difference between class-based and function-based context managers.

Make a Location-Based Web App With Django and GeoDjango

Make a Location-Based Web App With Django and GeoDjango

Learn how to use Django and GeoDjango to build a location-based web application from scratch. You’ll be building a simple nearby shops application that lists the shops closest to a user’s location.

Introduction to Python 3

Conditional Statements in Python (if/elif/else)

Paul Mealus

Paul Mealus 6 Lessons 21m
basics python

In this step-by-step course you'll learn how to work with conditional ("if") statements in Python. Master if-statements step-by-step and see how to write complex decision making code in your programs.

Sending Emails With Python

Sending Emails With Python

In this course, you'll learn how to send emails using Python. Find out how to send plain-text and HTML messages, add files as attachments, and send personalized emails to multiple people. Later on you'll build a CSV-powered email sending script from scratch.

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

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 CSV file, and more.

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.

Real Python Video Courses

Welcome to Real Python!

Dan Bader

Dan Bader 18 Lessons 46m

In this series of videos you'll get an overview of the features of the Real Python platform, so you can make the most of your membership. Follow along and get tips on: How to find the most valuable learning resources for your current skill level, how to meet and interact with other students and the RP Team, how to learn effectively, and more.

Got feedback on our courses?