Real Python
LlamaIndex in Python: A RAG Guide With Examples
Learn how to set up LlamaIndex, choose an LLM, load your data, build and persist an index, and run queries to get grounded, reliable answers with e...
Posted on 24 December 2025 | 2:00 pm
Quiz: LlamaIndex in Python: A RAG Guide With Examples
Take this Python LlamaIndex quiz to test your understanding of index persistence, reloading, and performance gains in RAG applications.
Posted on 24 December 2025 | 12:00 pm
Reading User Input From the Keyboard With Python
Master taking user input in Python to build interactive terminal apps with clear prompts, solid error handling, and smooth multi-step flows.
Posted on 23 December 2025 | 2:00 pm
Quiz: Recursion in Python: An Introduction
Test your understanding of recursion in Python, including base cases, recursive structure, performance considerations, and common use cases.
Posted on 23 December 2025 | 12:00 pm
SOLID Design Principles: Improve Object-Oriented Code in Python
Learn how to apply SOLID design principles in Python and build maintainable, reusable, and testable object-oriented code.
Posted on 22 December 2025 | 2:00 pm
Quiz: SOLID Design Principles: Improve Object-Oriented Code in Python
Learn Liskov substitution in Python. Spot Square and Rectangle pitfalls and design safer APIs with polymorphism. Test your understanding now.
Posted on 22 December 2025 | 12:00 pm
The Real Python Podcast – Episode #277: Moving Towards Spec-Driven Development
What are the advantages of spec-driven development compared to vibe coding with an LLM? Are these recent trends a move toward declarative programmi...
Posted on 19 December 2025 | 12:00 pm
How to Build the Python Skills That Get You Hired
Build a focused learning plan that helps you identify essential Python skills, assess your strengths, and practice effectively to progress.
Posted on 17 December 2025 | 2:00 pm
Exploring Asynchronous Iterators and Iterables
Learn to build async iterators and iterables in Python to handle async operations efficiently and write cleaner, faster code.
Posted on 16 December 2025 | 2:00 pm
Writing DataFrame-Agnostic Python Code With Narwhals
If you're a Python library developer looking to write DataFrame-agnostic code, this tutorial will show how the Narwhals library could give you a so...
Posted on 15 December 2025 | 2:00 pm
Quiz: Writing DataFrame-Agnostic Python Code With Narwhals
If you're a Python library developer wondering how to write DataFrame-agnostic code, the Narwhals library is the solution you're looking for.
Posted on 15 December 2025 | 12:00 pm
Python Inner Functions: What Are They Good For?
Learn how to create inner functions in Python to access nonlocal names, build stateful closures, and create decorators.
Posted on 10 December 2025 | 2:00 pm
Quiz: Python Inner Functions: What Are They Good For?
Test inner functions, closures, nonlocal, and decorators in Python. Build confidence and learn to keep state across calls. Try the quiz now.
Posted on 10 December 2025 | 12:00 pm
Using Functional Programming in Python
Boost your Python skills with a quick dive into functional programming: what it is, how Python supports it, and why it matters.
Posted on 9 December 2025 | 2:00 pm
Lazy Imports Land in Python and Other Python News for December 2025
PEP 810 brings lazy imports to Python 3.15, PyPI tightens 2FA security, and Django 6.0 reaches release candidate. Catch up on all the important Pyt...
Posted on 8 December 2025 | 2:00 pm
The Real Python Podcast – Episode #276: Exploring Quantum Computing & Python Frameworks
What are the recent advances in the field of quantum computing and high-performance computing? And what Python tools can you use to develop program...
Posted on 5 December 2025 | 12:00 pm
How to Use Google's Gemini CLI for AI Code Assistance
Learn how to use Gemini CLI to bring Google's AI-powered coding assistance directly into your terminal to help you analyze and fix code.
Posted on 3 December 2025 | 2:00 pm
Quiz: How to Use Google's Gemini CLI for AI Code Assistance
Learn how to install, authenticate, and safely use the Gemini CLI to interact with Google's Gemini models.
Posted on 3 December 2025 | 12:00 pm
Introduction to pandas
Learn pandas DataFrames: explore, clean, and visualize data with powerful tools for analysis. Delete unneeded data, import data from a CSV file, an...
Posted on 2 December 2025 | 2:00 pm
Quantum Computing Basics With Qiskit
Understand quantum computing basics like qubits, superposition, and entanglement. Then use Python Qiskit to build your first quantum circuit.
Posted on 1 December 2025 | 2:00 pm
Quiz: Quantum Computing Basics With Qiskit
Test your understanding of quantum computing basics, including superposition, qubits, entanglement, and key programming concepts.
Posted on 1 December 2025 | 12:00 pm
How to Convert Bytes to Strings in Python
Turn Python bytes to strings, pick the right encoding, and validate results with clear error handling strategies.
Posted on 26 November 2025 | 2:00 pm
Getting Started With Claude Code
Learn to set up and use Claude Code for Python projects: install, run commands, and integrate with Git.
Posted on 25 November 2025 | 2:00 pm
How to Properly Indent Python Code
Learn how to properly indent Python code in IDEs, Python-aware editors, and plain text editors—plus explore PEP 8 formatters like Black and Ruff.
Posted on 24 November 2025 | 2:00 pm
The Real Python Podcast – Episode #275: Building a FastAPI Application & Exploring Python Concurrency
What are the steps to get started building a FastAPI application? What are the different types of concurrency available in Python? Christopher Trud...
Posted on 21 November 2025 | 12:00 pm
Quiz: Build a Python MCP Client to Test Servers From Your Terminal
Learn how to create a Python MCP client, start an AI-powered chat session, and run it from the command line. Check your understanding.
Posted on 19 November 2025 | 12:00 pm
Break Out of Loops With Python's break Keyword
Learn how Python’s break lets you exit for and while loops early, with practical demos from simple games to everyday data tasks.
Posted on 18 November 2025 | 2:00 pm
Quiz: How to Serve a Website With FastAPI Using HTML and Jinja2
Review how to build dynamic websites with FastAPI and Jinja2, and serve HTML, CSS, and JS with HTMLResponse and StaticFiles.
Posted on 17 November 2025 | 12:00 pm
The Real Python Podcast – Episode #274: Preparing Data Science Projects for Production
How do you prepare your Python data science projects for production? What are the essential tools and techniques to make your code reproducible, or...
Posted on 14 November 2025 | 12:00 pm
Python Operators and Expressions
Operators let you combine objects to create expressions that perform computations -- the core of how Python works.
Posted on 11 November 2025 | 2:00 pm
The Real Python Podcast – Episode #273: Advice for Writing Maintainable Python Code
What are techniques for writing maintainable Python code? How do you make your Python more readable and easier to refactor? Christopher Trudeau is ...
Posted on 7 November 2025 | 12:00 pm
Quiz: Python MarkItDown: Convert Documents Into LLM-Ready Markdown
Practice MarkItDown basics. Convert PDFs, Word documents, Excel documents, and HTML documents to Markdown. Try the quiz.
Posted on 5 November 2025 | 12:00 pm
Building UIs in the Terminal With Python Textual
Learn to build rich, interactive terminal UIs in Python with Textual: a powerful library for modern, event-driven TUIs.
Posted on 4 November 2025 | 2:00 pm
The Real Python Podcast – Episode #272: Michael Kennedy: Managing Your Own Python Infrastructure
How do you deploy your Python application without getting locked into an expensive cloud-based service? This week on the show, Michael Kennedy from...
Posted on 31 October 2025 | 12:00 pm
Speed Up Python With Concurrency
Learn what concurrency means in Python and why you might want to use it. You'll see a simple, non-concurrent approach and then look into why you'd ...
Posted on 28 October 2025 | 2:00 pm
The Real Python Podcast – Episode #271: Benchmarking Python 3.14 & Enabling Asyncio to Scale
How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Tru...
Posted on 24 October 2025 | 12:00 pm
Investigating Quasar Data With Polars and Interactive marimo Notebooks
Learn to visualize quasar redshift data by building an interactive marimo dashboard using Polars, pandas, and Matplotlib.
Posted on 21 October 2025 | 2:00 pm
The Real Python Podcast – Episode #270: Evolving Teaching Python in the Classroom
How is teaching young students Python changing with the advent of LLMs? This week on the show, Kelly Schuster-Paredes from the Teaching Python podc...
Posted on 17 October 2025 | 12:00 pm
The Real Python Podcast – Episode #269: Python 3.14: Exploring the New Features
Python 3.14 is here! Christopher Trudeau returns to discuss the new version with Real Python team member Bartosz Zaczyński. This year, Bartosz coor...
Posted on 10 October 2025 | 12:00 pm
The Real Python Podcast – Episode #268: Advice on Beginning to Learn Python
What's changed about learning Python over the last few years? What new techniques and updated advice should beginners have as they start their jour...
Posted on 3 October 2025 | 12:00 pm