;
;

Real Python

Python Timer Functions

Learn how to time your Python code with the time module, then build a reusable Timer class that works as a context manager.
Posted on 8 September 2026 | 2:00 pm

Quiz: Python Timer Functions

Check what you know about Python timer functions, from picking the right time function to timing a block of code with a context manager.
Posted on 8 September 2026 | 12:00 pm

Async Generators Get yield from and Other Python News for September 2026

PEP 828 brings yield from to async generators, Python 3.15 freezes its ABI, and four AI libraries ship breaking releases in ten days.
Posted on 7 September 2026 | 2:00 pm

Quiz: Python Statistics Fundamentals: How to Describe Your Data

Check your understanding of descriptive statistics in Python, from means and spread to correlation, summaries, and plots that reveal your data.
Posted on 7 September 2026 | 12:00 pm

Quiz: Understanding the Python Traceback

Check your understanding of Python tracebacks. Practice reading the error message line, recognizing common exceptions, and logging a traceback.
Posted on 6 September 2026 | 12:00 pm

Quiz: Build Your Own Face Recognition Tool With Python

Check your understanding of face detection, face recognition, face encodings, bounding boxes, and model validation in Python.
Posted on 5 September 2026 | 12:00 pm

GPT-6 Astra Draws a Python Reading a Book

GPT-6 Astra takes Real Python's vibe check for AI models: a turtle drawing of a python reading a book, a Python vintage, a tiny edit, and a made-up...
Posted on 4 September 2026 | 2:00 pm

Quiz: Common Python Data Structures (Guide)

Test your grasp of Python's built-in data structures. Work through dictionaries, arrays, records, sets, stacks, queues, and priority queues.
Posted on 4 September 2026 | 12:00 pm

The Real Python Podcast – Episode #310: Performance Engineering: Profiling and Making Apps Fast by Default

How do you plan for the performance of your Python applications? What does a performance budget entail, and where should you spend your resources? ...
Posted on 4 September 2026 | 12:00 pm

Claude Fable 5.1 Draws a Python Reading a Book

Claude Fable 5.1 takes Real Python's vibe check for AI models: a turtle drawing of a python reading a book, a Python vintage, a tiny edit, and a ma...
Posted on 3 September 2026 | 2:00 pm

Quiz: Python AI: How to Build a Neural Network & Make Predictions

Check your grasp of how neural networks make predictions in Python, from dot products and activation functions to gradient descent and backpropagat...
Posted on 3 September 2026 | 12:00 pm

Python 3.15 Preview: UTF-8 by Default

Preview the Python 3.15 UTF-8 default: see what changes, try it on a pre-release, and keep your file I/O portable across every platform.
Posted on 2 September 2026 | 2:00 pm

Quiz: Python 3.15 Preview: UTF-8 by Default

Test your understanding of Python 3.15's UTF-8 default, from the origins of the old locale-based encoding to passing explicit encodings in your code.
Posted on 2 September 2026 | 12:00 pm

Quiz: Python Project Structure: How to Choose the Right Layout

Test your understanding of Python project structure, from flat and src layouts to organizing packages for CLI, web, and GUI applications.
Posted on 2 September 2026 | 12:00 pm

How to Get Started With Ollama

Learn how to install Ollama, pull local models, and connect them to your Python code using the chat and text generation interfaces.
Posted on 1 September 2026 | 2:00 pm

Primer on Python Decorators

In this tutorial, you'll look at what Python decorators are and how you define and use them. Decorators can make your code more readable and reusab...
Posted on 1 September 2026 | 2:00 pm

Build Your Own Face Recognition Tool With Python

In this tutorial, you'll build your own face recognition command-line tool with Python. You'll learn how to use face detection to identify faces in...
Posted on 1 September 2026 | 2:00 pm

Quiz: Automating EDA With fg-data-profiling

Check what you know about automating exploratory data analysis with fg-data-profiling, from building reports to profiling time series.
Posted on 1 September 2026 | 12:00 pm

Async Programming in Python: From Generators to asyncio

Learn how Python async programming works. Write async functions with async and await, and run slow I/O operations concurrently with asyncio.
Posted on 31 August 2026 | 2:00 pm

Quiz: Async Programming in Python: From Generators to asyncio

Test your understanding of async features in Python, including async and await, blocking versus non-blocking code, and the event loop.
Posted on 31 August 2026 | 12:00 pm

The Real Python Podcast – Episode #309: Exploring Complex Systems & Maintainable Data Science Pipelines

What are the key characteristics of complex systems, and what are practical patterns for tackling complex coding problems? Christopher Trudeau is b...
Posted on 28 August 2026 | 12:00 pm

Python 3.15 Preview: Sampling Profiler

Explore Python 3.15's new sampling profiler and learn low-overhead profiling of scripts, threads, and live production processes.
Posted on 26 August 2026 | 2:00 pm

The Python print() Function: Go Beyond the Basics

Learn about Python's print() function, discover its lesser-known features, avoid common mistakes, and know when to use a better alternative.
Posted on 25 August 2026 | 2:00 pm

How to Write an AGENTS.md File for a Python Project

Learn how to write an AGENTS.md file so your AI coding agent produces idiomatic Python code that fits your project on the first try.
Posted on 24 August 2026 | 2:00 pm

The Real Python Podcast – Episode #308: Navigating Silent Failures in AI: Strategies for Effective Oversight

Why do AI systems silently fail? How can you set up a system that produces results while also reviewing and validating the work? This week on the s...
Posted on 21 August 2026 | 12:00 pm

How to Use Claude Code to Write and Debug Python

Learn how to use Claude Code to build and debug Python projects with natural-language commands right from your terminal.
Posted on 19 August 2026 | 2:00 pm

Working With Python's deque

Learn how to use Python's deque to efficiently append and pop items from both ends, build queues and stacks, and set maxlen for bounded history.
Posted on 18 August 2026 | 2:00 pm

The Real Python Podcast – Episode #307: Improving NumPy Performance on Free-Threaded Python

What bottlenecks were preventing NumPy from scaling on free-threaded Python? Christopher Trudeau is back on the show this week with another batch o...
Posted on 14 August 2026 | 12:00 pm

Coding With OpenCode: AI-Assisted Python

Learn how to use OpenCode for AI-assisted Python coding, using a free Gemini API key to analyze and refactor code right in your terminal.
Posted on 11 August 2026 | 2:00 pm

The Real Python Podcast – Episode #306: Programmatically Developing LLM Prompts With DSPy

How can you move from manually writing prompts for an LLM application toward defining them programmatically? This week on the show, Brett Kennedy r...
Posted on 7 August 2026 | 12:00 pm

Sending Emails Using Python

Learn how to send emails with Python using SMTP and smtplib, attach files, format HTML messages, and personalize bulk emails.
Posted on 4 August 2026 | 2:00 pm

The Real Python Podcast – Episode #305: Should You Understand Your Entire Python Codebase?

Should you understand the entirety of your codebase? How familiar are you with Python's built-in functions? Christopher Trudeau is back on the show...
Posted on 31 July 2026 | 12:00 pm

Managing Imports With Python's __all__

Learn how Python's dunder all variable controls wildcard imports and shapes the public API your packages and modules expose.
Posted on 28 July 2026 | 2:00 pm

The Real Python Podcast – Episode #304: Configuring a Versatile LLM Harness & Scraping the Web With Scrapy

Which is more important, the model or the "harness" around an LLM? What are ways to assemble an efficient agentic developer workflow? Thi...
Posted on 24 July 2026 | 12:00 pm

Learning Path: FastAPI: Python API Development With Light Speed

Learn FastAPI from the ground up. Build REST APIs, serve web pages with Jinja2 templates, and create a complete URL shortener project in Python.
Posted on 22 July 2026 | 12:00 pm

Exploring Python's Built-in Functions

Learn Python's built-in functions for math, data types, iterables, and I/O, and when to use each to write more Pythonic code.
Posted on 21 July 2026 | 2:00 pm

The Real Python Podcast – Episode #303: Free-Threaded Python's History & uv in Production

How many attempts have been made to remove Python's Global Interpreter Lock (GIL)? How do they compare to the current approach? Christopher Trudeau...
Posted on 17 July 2026 | 12:00 pm

Understanding Mixin Classes in Python

Learn how to write reusable Python mixin classes, distinguish them from abstract base classes, and steer clear of common pitfalls.
Posted on 14 July 2026 | 2:00 pm

The Real Python Podcast – Episode #302: Constructing and Judging Modern Agentic Workflows

How can you improve your LLM agent systems through specification enrichment? What are the advantages of having an LLM act as a judge within an agen...
Posted on 10 July 2026 | 12:00 pm

Testing MCP Servers With a Python MCP Client

Learn how to build a Python MCP client that tests MCP servers from your terminal. List their tools, prompts, and resources, then call each one.
Posted on 7 July 2026 | 2:00 pm

The Real Python Podcast – Episode #301: Running Python Locally in a Sandbox

How do you avoid the risk of running a Python application locally that could be malicious, break your code, or leak private data? How can you creat...
Posted on 3 July 2026 | 12:00 pm

Learning Path: Python Game Development

Build Python games from command-line projects to 2D graphical games with turtle, Tkinter, Pygame, and Arcade.
Posted on 16 April 2026 | 12:00 pm

Learning Path: LLM Application Development With Python

Build LLM-powered applications in Python. Call model APIs, craft prompts, add retrieval-augmented generation, create AI agents, and connect via MCP.
Posted on 19 March 2026 | 12:00 pm

Learning Path: Python Coding With AI

Use AI coding assistants to write, review, and debug Python code faster. Choose an editor-based assistant like Cursor or a terminal-based one like ...
Posted on 7 December 2025 | 12:00 pm

Learning Path: Important Standard Library Modules

Explore Python standard library modules including math, datetime, JSON, CSV, regex, subprocess, and argparse through hands-on tutorials and courses.
Posted on 14 November 2024 | 12:00 pm

Learning Path: Network Programming and Security

Learn network programming and security in Python. Work with CRUD operations, REST APIs, HTTPS, and socket programming to build networked apps.
Posted on 14 November 2024 | 12:00 pm

Learning Path: Python Data Structures

Learn Python's built-in data structures: strings, lists, tuples, dictionaries, sets, and bytes, plus sorting, copying, and comprehensions.
Posted on 14 November 2024 | 12:00 pm

Learning Path: Create Graphical User Interfaces (GUI)

Build Python GUI applications with Tkinter, PyQt, wxPython, and Kivy. Learn layouts, event handling, threading, and database integration.
Posted on 14 November 2024 | 12:00 pm

Learning Path: Testing and Continuous Integration

Learn how to test Python code with unittest, doctest, pytest, and mock objects. Set up continuous integration with GitHub Actions and Docker.
Posted on 14 November 2024 | 12:00 pm

Learning Path: Perfect Your Python Development Setup

Set up a Python development environment with VS Code, PyCharm, virtual environments, Git, pyenv, Docker, and AI coding tools like Claude Code and C...
Posted on 14 November 2024 | 12:00 pm