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