

The Real Python Podcast
Real Python
A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
Episodes
Mentioned books

Sep 10, 2021 • 1h 10min
Advantages of Completing Small Python Projects
Are you a beginner or intermediate Python programmer who has made it through some of the fundamentals? Have you tried to tackle a big project but got stuck and frustrated? Completing some small projects might be the answer. This week on the show, we have author Al Sweigart and talk about his new book, “The Big Book of Small Python Projects.”
We discuss the advantages of sometimes thinking small in terms of Python programs. We talk about completing projects and the benefits of manually copying code by typing it in yourself. Al also has suggestions about tools for beginners and intermediate developers.
Course Spotlight: Grow Your Python Portfolio With 13 Intermediate Project Ideas
Get started on 13 Python project ideas that are just right for intermediate Python developers. They’ll challenge you enough to help you become a better Pythonista.
Topics:
00:00:00 – Introduction
00:01:53 – Writing books and PyCascades 2021 Author panel
00:06:58 – Did you type in code from books as beginner?
00:10:16 – About the book
00:20:53 – Sponsor: Rev AI
00:21:30 – General instructions on how to start with the book
00:27:39 – Working with a debugger
00:30:28 – Experimenting with existing code
00:34:27 – Tools for learning touch typing
00:38:31 – Video Course Spotlight
00:39:37 – IDEs, Mu, and Python’s IDLE
00:45:42 – Online diff tool
00:47:27 – Some of the projects, games, animations
00:51:58 – Finishing things
00:54:07 – What are areas of Python you see beginners struggle with?
00:59:41 – What is something you wish you were shown as a beginner?
01:02:07 – What are you excited about in the world of Python?
01:04:34 – What do you want to learn next?
01:07:27 – Shout outs and social connections
01:08:33 – Thanks and goodbye
Show Links:
The Big Book of Small Python Projects: No Starch Press
Invent With Python
Al Sweigart Website
Everything You Need to Know About Writing Technical Python Books: PyCascades 2021
PEP 657 – Include Fine Grained Error Locations in Tracebacks
Episode 71: Start Using a Debugger With Your Python Code
Nina Zakharenko - Goodbye Print, Hello Debugger! - PyCon 2020
TypingClub: Learn Touch Typing for Free!
Typespeed: Typing Speed Testing Game for Ubuntu Linux
Code With Mu: Simple Python editor for beginner programmers
IDLE: Python’s Integrated Development and Learning Environment
90 percent of US net users don’t know from crtl-F
The Beginner’s Guide to Python Turtle: Real Python Article
Python’s dir() Built-in Function: docs.python.org
Python’s help() Built-in Function: docs.python.org
How to Get Help in Python - Your First Steps
-Announcing the Location for PyCon US 2022/2023
Episode 33: Going Beyond the Basic Stuff With Python and Al Sweigart
Focusmate: Distraction-free Productivity
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Arduino With Python: Getting Started
Debugging in Python With pdb
Support the podcast & join our community of Pythonistas

Sep 3, 2021 • 50min
Harnessing Python's math Module and Exposing Practical Pandas Functions
How well do you know Python’s math module? Maybe you’ve used a few of the constants or arithmetic functions. You may be surprised by the amount of functionality hiding within this built-in library, and perhaps you don’t need to reach for an additional outside library. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We discuss a recent video course about the math module. David shares a recent article about implementing efficient queues and stacks with Python’s deque (double-ended queue) class. We also talk about an article that shares 25 Pandas functions you may not have known to exist.
We cover several other articles and projects from the Python community including, visualization and interactive dashboards in Python with HoloViz, designing a camera with Python and PyRayT, graphing data science with Python and networkx, another useful Python pdf library, and runtime software verification and automated testing for scientific software in Python with a project named paranoidscientist.
Course Spotlight: Exploring the Python math Module
In this step-by-step course, you’ll learn all about Python’s math module for higher-level mathematical functions. Whether you’re working on a scientific project, a financial application, or any other type of programming endeavor, you just can’t escape the need for math!
Topics:
00:00:00 – Introduction
00:02:09 – Python’s deque: Implement Efficient Queues and Stacks
00:07:31 – Visualization and Interactive Dashboard in Python
00:14:11 – Sponsor: DataStax Astra DB
00:14:42 – Design a Camera with Python and PyRayT
00:19:39 – 25 Pandas Functions You Didn’t Know Existed
00:27:03 – Graph Data Science With Python and NetworkX
00:33:01 – Exploring the Python math Module
00:40:51 – Video Course Spotlight
00:42:12 – paranoidscientist: Runtime Software Verification and Automated Testing for Scientific Software in Python
00:45:33 – borb: A Python PDF library
00:49:01 – Thanks and goodbye
Show Links:
Python’s deque: Implement Efficient Queues and Stacks – In this step-by-step tutorial, you’ll learn about Python’s deque and how to use it to perform efficient pop and append operations on both ends of your sequences. Deques are commonly used to build queues and stacks.
Visualization and Interactive Dashboard in Python – Have you ever heard of HoloViz? It’s a set of Python visualization and plotting tools for browser-based data visualization and presentation. In this article, Sophia Yang — a senior data scientist at Anaconda — explains why she loves HoloViz and what her workflow looks like when using it.
Design a Camera with Python and PyRayT – Camera lenses are more complex than you might think. If you cut open a camera to look at a cross-section, you’d see that a lens is actually made up of several smaller lenses. This article explores how camera lenses work using a new Python raytracing project called PyRayT that’s designed for designing optical systems.
25 Pandas Functions You Didn’t Know Existed – Did you know that you can style the pandas DataFrame output in a notebook? This listicle covers twenty-five pandas functions that you may not have heard of, including .explode(), .squeeze(), and the pandas DataFrame styler. There’s something in this article for everyone, so read it to find out how you can take your pandas skills to the next level.
Graph Data Science With Python and NetworkX – Graph theory network analysis can yield deep data insights that are difficult to tease out via alternative methods. Get a taste of what graph analysis can do in this quick, hands-on tutorial that uses NetworkX to create and analyze a graph.
Exploring the Python math Module – In this step-by-step course, you’ll learn all about Python’s math module for higher-level mathematical functions. Whether you’re working on a scientific project, a financial application, or any other type of programming endeavor, you just can’t escape the need for math!
Projects:
paranoidscientist: Runtime Software Verification and Automated Testing for Scientific Software in Python
borb: A Python PDF library
Additional Links:
Interactive Data Visualization in Python With Bokeh: Real Python Course
Lensbaby: Award-Winning Creative Effects Lenses & Tools
pandas - Comparison with spreadsheets
NetworkX
Creating a PDF Document in Python with borb
Creating PDF Invoices in Python with borb
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Exploring the Python math Module
Editing Excel Spreadsheets in Python With openpyxl
Support the podcast & join our community of Pythonistas

5 snips
Aug 27, 2021 • 1h 25min
Building With CircuitPython & Constraints of Python for Microcontrollers
Can you make a version of Python that fits within the memory constraints of a microcontroller and have it still feel like Python? That is the intention behind CircuitPython. This week on the show, we have Scott Shawcroft, who is the project lead for CircuitPython.
We talk about all things CircuitPython. While working with the language on several projects I have developed many of my own questions to ask Scott. Scott answers my questions about boot loaders, packages, the bundle, and bluetooth low energy (BLE).
He also talks about the struggle of fitting the language and board specific libraries within tiny memory constraints. We discuss projects and boards for beginners, and many resources to learn more.
Course Spotlight: Getting Started With MicroPython
Are you interested in the Internet of Things, home automation, and connected devices? If so, then you’re in luck! In this course, you’ll learn about MicroPython and the world of electronics hardware. You’ll set up your board, write your code, and deploy a MicroPython project to your own device.
Topics:
00:00:00 – Introduction
00:01:56 – Background With CircuitPython
00:07:22 – Lightning talk and CircuitPython as a subset of Python
00:16:01 – Working with CircuitPython: Bootloaders and Packages
00:27:20 – Specific libraries, adding modules, and pip
00:37:21 – Sponsor: Rev.ai
00:37:57 – How to program, text editor or IDE
00:41:19 – Bluetooth Low Energy (BLE) and programming devices remotely
00:50:02 – Video Course Spotlight
00:51:06 – Do you consider yourself a Maker?
00:54:58 – Bringing CircuitPython coding to the Raspberry Pi?
00:59:56 – Suggestions for beginner hardware
01:00:55 – Suggestions for add-on boards for audio or displays
01:10:20 – Electronics Show and Tell Wednesdays
01:11:51 – Events, video streams, and Discord server
01:16:00 – What are you excited about in the world of Python?
01:17:23 – What do you want to learn next?
01:18:42 – Shoutouts and plugs
01:22:40 – Social media info
01:23:52 – Thanks and goodbye
Show Links:
CircuitPython: The easiest way to program microcontrollers
Adafruit
LadyAda.net
MicroPython: Python for Microcontrollers
2021 Python Language Summit Lightning Talks Slides: tannewt GitHub
The 2021 Python Language Summit: Lightning Talks, Round 1
Episode 69: Planning a Faster Future at the Python Language Summit
Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon
Syntatic Sugar Series: Brett Cannon
WebAssembly - WASM
Adafruit MacroPad RP2040 Starter Kit
John Park’s Workshop: YouTube Playlist
Code With Mu: A simple Python editor for beginner programmers
BLE - Bluetooth Low Energy: Wikipedia
CircUp: A tool to manage and update libraries (modules) on a CircuitPython device
Blinka: Brings CircuitPython APIs to single board computers
Raspberry Pi 400 Desktop - Full Computer Kit
Electronics Show and Tell Wednesdays: YouTube playlist
learn.adafruit.com
AdaBox: Curated Adafruit products
tannewt GitHub
Adafruit Discord Server: Link to join
Level up your Python skills with our expert-led courses:
Reading and Writing Files With pandas
Documenting Code in Python
Getting Started With MicroPython
Support the podcast & join our community of Pythonistas

Aug 20, 2021 • 58min
Python's Assignment Expressions and Fixing a Botched Release to PyPI
Have you started to use Python’s assignment expression in your code? Maybe you have heard them called the walrus operator. Now that the controversy over the introduction in Python 3.8 has settled down, how can you use assignment expressions effectively in your code? This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
David shares a recent article by previous guest Brett Cannon about what to do if you botch a release to PyPI. It’s a valuable resource to keep bookmarked for when things go sideways. We also talk about a recent project by Brett, a Python launcher for Unix based operating systems.
We cover several other articles and projects from the Python community including, a Python framework with a built-in database and authorization support from Replit, do coders learn how to use entire libraries just from the documentation, how to use sleep() to code a Python uptime bot, monitor your home’s temperature and humidity with Raspberry Pis and Prometheus, and a fast Settlers of Catan Python implementation with a strong AI player.
Course Spotlight: Using sleep() to Code a Python Uptime Bot
In this course, you’ll learn how to add time delays to your Python programs. You’ll use the built-in time module to add Python sleep() calls to your code. To practice, you’ll use time.sleep() when making an uptime bot that checks whether a website is still live.
Topics:
00:00:00 – Introduction
00:02:43 – The Walrus Operator: Python 3.8 Assignment Expressions
00:12:41 – Replit.web: Python Framework With Built-in Database and Auth
00:16:55 – Sponsor: Gather
00:17:39 – Do Coders Learn How to Use Entire Libraries Just From the Docs?
00:26:15 – Using sleep() to Code a Python Uptime Bot
00:31:53 – Monitor Home Temperature and Humidity With Raspberry Pis and Prometheus
00:39:51 – Video Course Spotlight
00:40:57 – What to Do When You Botch a Release on PyPI
00:47:25 – catanatron: Fast Settlers of Catan Python Implementation
00:50:37 – python-launcher: Python Launcher for Unix
00:56:59 – Thanks and goodbye
Show Links:
The Walrus Operator: Python 3.8 Assignment Expressions – In this tutorial, you’ll learn about assignment expressions and the walrus operator. The biggest change in Python 3.8 was the inclusion of the := operator, which you can use to assign variables in the middle of expressions. You’ll see several examples of how to take advantage of this new feature.
Replit.web: A Python Framework With Built-in Database and Auth Support – The folks over at replit have released a new Python web framework with built-in authentication and database support and, more interestingly, hosting. In a few lines of code, you can have a Python web app connected to a database, authenticating users, and hosted on replit. This could be a great tool for quickly building and hosting prototypes or experimental projects.
Do Coders Really Learn How to Use Entire Libraries Just From the Documentation? – How do you learn a new library? Do you start with the docs? What do you do if the documentation is lacking? Or do you first search for video lessons or written tutorials?
Using sleep() to Code a Python Uptime Bot – Learn how to add time delays to your Python programs. You’ll use the built-in time module to add Python sleep() calls to your code. To practice, you’ll use time.sleep() when making an uptime bot that checks whether a website is still live.
Monitor Your Home’s Temperature and Humidity With Raspberry Pis and Prometheus – Do you enjoy collecting and analyzing data, or are you looking for a fun project to improve your data skills? Do you also enjoy tinkering with hardware? Then this project might be a fun one for you to check out! Learn how to set up a RaspberryPi using Prometheus to collect and monitor temperature sensor data.
What to Do When You Botch a Release on PyPI – Mistakes happen to everyone. But what do you do if you make a mistake when releasing a package to PyPI? Don’t panic! There are a number of things you can do to fix a bad release. This article walks you through several scenarios and suggested solutions.
Projects:
catanatron: Fast Settlers of Catan Python Implementation and Strong AI Player
python-launcher: Python Launcher for Unix
Additional Links:
Python sleep(): How to Add Time Delays to Your Code: Real Python Article
Cool New Features in Python 3.8: Real Python Article
PEP 572 – Assignment Expressions: Python.org
Prometheus
Set up temperature sensors in your home with a Raspberry Pi: Opensource.com
Run Prometheus at home in a container: Opensource.com
Raspberry Pi Humidity Sensor using the DHT22: PiMyLifeUp
Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon
Episode 43: Deep Reinforcement Learning in a Notebook With Jupylet + Gaming and Synthesis
Level up your Python skills with our expert-led courses:
How to Publish Your Own Python Package to PyPI
Cool New Features in Python 3.8
Using sleep() to Code a Python Uptime Bot
Support the podcast & join our community of Pythonistas

Aug 13, 2021 • 1h 1min
Supporting Python Open Source Projects and Maintainers
How do you define open source software? What are the challenges an open source project and maintainers face? How do maintainers receive financial, legal, security, or other types of help? This week on the show, we have Josh Simmons from Tidelift and the Open Source Initiative to help answer these questions.
Josh does open source ecosystem strategy for Tidelift. We talk about what Tidelift is and how they support maintainers. We also discuss the types of support maintainers need and the barriers that can block that support.
Josh also serves as President of the Open Source Initiative. OSI is actively involved in open source community-building and education. He talks about how collectives and foundations can be powerful tools in the open source ecosystem.
Course Spotlight: Python Inner Functions
In this step-by-step course, you’ll learn what inner functions are in Python, how to define them, and what their main use cases are. You’ll see how to write helper functions, create closure factory functions, and how to add behavior to existing functions with decorators.
Topics:
00:00:00 – Introduction
00:01:49 – What is Tidelift?
00:03:41 – What is your role?
00:05:28 – What is a lifter?
00:06:50 – How much software used by businesses is open-source?
00:10:26 – Comparing risks of proprietary, open-source, and commercial software
00:18:52 – How to define a project as open-source
00:30:17 – Defining rights and freedoms of open-source
00:32:39 – Sponsor: Sentry
00:33:43 – Obstacles in the way for contributions
00:42:51 – Other types of support open-source contributors need
00:46:55 – A goal to work with foundations and individual maintainers
00:49:54 – Benefits of improved documentation, a force multiplier
00:51:26 – Video Course Spotlight
00:52:37 – What makes a managed open-source project?
00:54:58 – What are you excited about in the world of Python?
00:55:51 – What do you want to learn next?
00:57:10 – Shoutout and call to action
00:59:27 – Social media information
00:59:46 – Thanks and goodbye
Show Links:
Joshua R. Simmons: Website
Tidelift: A better way to manage open source
What motivates open source maintainers?: TideLift YouTube
Tidelift: Are you an open source maintainer?
Better together: cultivating an open source ecosystem that works for everyone
Open Source Initiative: Guaranteeing the ‘our’ in source
The Open Source Definition: 10 Criteria
Open Source Collective: Non-profit fiscal host promoting a healthy and sustainable open source ecosystem
Software Freedom Conservancy: A not-for-profit charity that helps promote, improve, develop, and defend Free, Libre, and Open Source Software (FLOSS) projects
Software Freedom Conservancy: Wikipedia Article
Django Software Foundation: About
Python Software Foundation: Membership
Josh Simmons Twitter
Level up your Python skills with our expert-led courses:
Python Inner Functions
Documenting Code in Python
How to Publish Your Own Python Package to PyPI
Support the podcast & join our community of Pythonistas

Aug 6, 2021 • 46min
Starting With FastAPI and Examining Python's Import System
Have you heard of FastAPI? An application programming interface is vital to make your software accessible to users across the internet. FastAPI is an excellent option for quickly creating a web API that implements best practices. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We share an introduction to FastAPI written by the framework’s author, Sebastián Ramírez. The goal behind the article is to get you started creating production-ready APIs.
David covers an article about the Python import system and how it remains a mystery for many Python developers. We share some additional Real Python resources on the import system and statements.
We cover several other articles and projects from the Python community including, a buffet of specialized data types with Python’s collections module, maps with Django using GeoDjango, PostGIS, and Leaflet, moving SciPy to the Meson build system, what’s new in Python 3.11, a community-maintained Python framework for creating mathematical animations, and easily make PDFs with pdfme.
Course Spotlight: Python Modules and Packages: An Introduction
In this course, you’ll explore Python modules and Python packages, two mechanisms that facilitate modular programming. See how to write and import modules so you can optimize the structure of your own programs and make them more maintainable.
Topics:
00:00:00 – Introduction
00:02:18 – Python’s collections: A Buffet of Specialized Data Types
00:08:07 – Maps With Django: GeoDjango, PostGIS, and Leaflet
00:12:12 – Moving SciPy to the Meson Build System
00:18:16 – Sponsor: Sentry
00:19:18 – What’s New In Python 3.11
00:24:32 – Behind the Scenes: How the Python Import System Works
00:31:34 – Video Course Spotlight
00:32:40 – Using FastAPI to Build Python Web APIs
00:38:42 – manim: A Community-Maintained Python Framework for Creating Mathematical Animations
00:41:56 – pdfme: Make PDFs Easily
00:44:42 – Thanks and goodbye
Show Links:
Python’s collections: A Buffet of Specialized Data Types – Python has a number of useful data types beyond the built-in lists, tuples, dicts, and sets. In this tutorial, you’ll learn all about the series of specialized container data types in the collections module from the Python standard library. Learning the collections module is a great way to level up your Python programming knowledge!
Maps With Django: GeoDjango, PostGIS, and Leaflet – This quickstart guide shows you how to create a web map using Django’s GeoDjango module. Data for the map is stored in a PostgreSQL database using the PostGIS extension, and Leaflet, a lightweight JavaScript library for interactive maps, is used on the front-end. You’ll not only learn how to set up the Django application and display the map but also add markers to the map and automatically center the map on the application user’s location.
Moving SciPy to the Meson Build System – In accordance with PEP 632, distutils will be deprecated in Python 3.10 and in Python 3.12 it will be removed. This posed a big problem for SciPy, since it’s build system depends on NumPy’s distutils module — an extension of Python’s built-in distutils. The SciPy maintainers set out to find a new build system and settled on Meson, which solves a number of build issues and even scores a 4x speed-up on build times!
What’s New In Python 3.11 – Python 3.10 is still in beta, but work on Python 3.11 has already begun. Big changes include some major improvements to tracebacks as well as a new cube root function in the math module.
Behind the Scenes: How the Python Import System Works – Importing a Python module is probably one of the most used language features. But Python’s import system remains a mystery to many Python developers, even folks with years of experience. This in-depth article explores how the import system works from the top down. You’ll learn everything from the difference is between absolute and relative imports to how Python searches for modules and packages and resolves naming conflicts.
Using FastAPI to Build Python Web APIs – In this guide, written by FastAPI creator Sebastián Ramírez, you’ll learn the main concepts of FastAPI and how to use it to quickly create web APIs that implement best practices by default. By the end of it, you will be able to start creating production-ready web APIs.
Projects:
manim: A Community-Maintained Python Framework for Creating Mathematical Animations
pdfme: Make PDFs Easily
Additional Links:
Common Python Data Structures (Guide): Real Python
OrderedDict vs dict in Python: The Right Tool for the Job: Real Python Article
Python’s Counter: The Pythonic Way to Count Objects: Real Python Article
Make a Location-Based Web App With Django and GeoDjango: Real Python Article
Make a Location-Based Web App With Django and GeoDjango: Real Python Course
Python import: Advanced Techniques and Tips: Real Python Article
Absolute vs Relative Imports in Python: Real Python Article
Python Modules and Packages: An Introduction - Real Python Course
Level up your Python skills with our expert-led courses:
Building HTTP APIs With Django REST Framework
Build a Location-Based Web App With Django and GeoDjango
Python Modules and Packages: An Introduction
Support the podcast & join our community of Pythonistas

Jul 30, 2021 • 1h 6min
Start Using a Debugger With Your Python Code
Are you still sprinkling print statements throughout your code while writing it? Print statements are often clunky and offer only a limited view of the state of your code. Have you thought there must be a better way? This week on the show, we have Nina Zakharenko to discuss her conference talk titled “Goodbye Print, Hello Debugger.”
We talk about how to get started debugging your code by adding a single keyword. Nina discusses the differences between debugging on the command line vs using the tools included with an Integrated Development Environment(IDE). She also shares tricks and best practices. If you haven’t seen Nina’s conference talk, it’s a great starting point.
We also talk about working through the last 18 months and how to recharge your creative batteries. We briefly discuss two other presentations Nina gave about CircuitPython and getting started with electronics and Python.
Course Spotlight: Python Debugging With pdb
In this hands-on course, you’ll learn the basics of using pdb, Python’s interactive source code debugger. pdb is a great tool for tracking down hard-to-find bugs, and it allows you to fix faulty code more quickly.
Topics:
00:00:00 – Introduction
00:01:46 – Follow up on PyCascades 2021 and 2022
00:02:45 – Election to the PSF Board
00:05:06 – Current levels of burnout
00:09:09 – Possible ways to recharge
00:12:18 – Goodbye Print, Hello Debugger
00:14:46 – What are the types of things you can examine the state of?
00:18:01 – Where to start?
00:22:37 – Sponsor: Sentry
00:23:39 – Why is debugging not shown as often in Python?
00:26:49 – Debugging in VSCode
00:29:37 – Adding breakpoints in Flask or Django Templates
00:31:32 – What is pdb and how does it compare to ipdb?
00:39:40 – What are common debugging mistakes?
00:43:50 – Video Course Spotlight
00:44:48 – Why include a disclaimer about the talk?
00:46:13 – Where did you learn about debugging?
00:49:23 – Nina’s conference talks about CircuitPython
00:58:33 – What are you excited about in the world of Python?
00:59:51 – What do you want to learn next?
01:04:02 – Social info
01:04:27 – Thanks and goodbye
Show Links:
Nina Zakharenko - Personal Website
PyCascades 2021
Python Software Foundation - Become a Member
Nina Zakharenko - Goodbye Print, Hello Debugger! - PyCon 2020
pdb — The Python Debugger: Python 3 Docs
IPython: Interactive Computing
Pre-commit: A framework for managing and maintaining multi-language pre-commit hooks
Python Morsels: Write better Python code in 30 minutes each week
Find & Fix Code Bugs in Python: Debug With IDLE: Real Python Article
Python Basics: Finding and Fixing Code Bugs: Real Python Video Course
Light Up Your Life With Python and LEDs - PyCon 2019 - YouTube
More Fun With Hardware and CircuitPython - IoT, Wearables, and more! - PyCon 2021 - YouTube
CircuitPython: The easiest way to program microcontrollers
Circuit Playground Express by Adafruit
Device Simulator Express: A VS code extension
IoT for Beginners - A Curriculum
The Big Book of Small Python Projects - Al Sweigart
Kreg® Pocket-Hole Jig 320
Conquer your cuts with the Adaptive Cutting System
Nina’s Twitter
Level up your Python skills with our expert-led courses:
Debugging in Python With pdb
The pandas DataFrame: Working With Data Efficiently
Documenting Python Projects With Sphinx and Read The Docs - Archived
Support the podcast & join our community of Pythonistas

Jul 23, 2021 • 57min
What Can You Do With Python and Counting Objects Using "Counter"
How is Python being used today, and what can you do with the language? Do you want to develop software, dive into data science and math, automate parts of your job and digital life, or work with electronics? This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We talk about a Real Python article that covers the incredible variety of ways you can use Python. David shares an article about the pythonic way to count objects using the Counter class from the collections module. We discuss the ways it can lead to cleaner and more efficient code.
We cover several other articles and projects from the Python community including, the inaugural CPython developer-in-residence, typeclasses in Python, GitHub Copilot writes a text-based game, friendlier tracebacks in REPLs (including Jupyter), 120+ interactive interview challenges, a module that helps you build complex pipelines of batch jobs, and a tool for plotting in the terminal.
Course Spotlight: Understanding Python List Comprehensions
Python list comprehensions make it easy to create lists while performing sophisticated filtering, mapping, and conditional logic on their members. In this course, you’ll learn when to use a list comprehension in Python and how to create them effectively.
Topics:
00:00:00 – Introduction
00:02:01 – Łukasz Langa Is the Inaugural CPython Developer-in-Residence
00:05:03 – What Can I Do With Python?
00:11:19 – Typeclasses in Python
00:17:59 – Sponsor: Sentry
00:19:01 – Copilot Writes a Text-Based Game in Python
00:27:31 – Python’s Counter: The Pythonic Way to Count Objects
00:34:14 – interactive-coding-challenges: 120+ Interactive Python Coding Interview Challenges With Anki Flashcards
00:38:11 – Video Course Spotlight
00:39:11 – Friendlier Tracebacks in REPLs (Including Jupyter)
00:49:37 – luigi: Python Module That Helps You Build Complex Pipelines of Batch Jobs
00:52:13 – plotext: Plotting in the Terminal
00:55:24 – Thanks and goodbye
Show Links:
Łukasz Langa Is the Inaugural CPython Developer-in-Residence
What Can I Do With Python? – You’ve finished a course or finally made it to the end of a book that teaches you the basics of programming with Python. You’ve learned about variables, lists, tuples, dictionaries, for and while loops, conditional statements, object-oriented concepts, and more. So, what’s next? What can you do with Python nowadays?
Typeclasses in Python – Sometimes you need to change the behavior of a function based on the type of argument passed to it. This is a classic example of polymorphism in programming. In this article, you’ll learn how this is typically done in Python, compare that to polymorphism in other languages, and see how the new classes library can make the whole process easier.
Copilot Writes a Text-Based Game in Python – GitHub’s new Copilot feature has a lot of people talking. The project’s goal is to be an AI pair programmer — a tool that can suggest entire lines of code or even entire functions! In this amusing article, one developer who gained access to Copilot’s technical preview shares how the AI wrote an entire text-based adventure game that turned out to be the solution to an exercise from a Python instructional book.
Python’s Counter: The Pythonic Way to Count Objects– In this step-by-step tutorial, you’ll learn how to use Python’s Counter to count several repeated objects at once. You’ll also learn how to use Counter objects to enhance other computations that you do in Python.
interactive-coding-challenges: 120+ Interactive Python Coding Interview Challenges With Anki Flashcards
Friendlier Tracebacks in REPLs (Including Jupyter) – Tracebacks are often the start of any Python debugging journey. But tracebacks can be difficult to read and confusing to beginners. The friendly-traceback project aims to lift the veil of confusion for tracebacks by providing more helpful error messages with lots of context. New updates to the project include better tracebacks in Jupyter Notebooks!
Projects:
luigi: Python Module That Helps You Build Complex Pipelines of Batch Jobs
plotext: Plotting in the Terminal
Additional Links:
I am the new CPython Developer in Residence: Łukasz Langa
Python Success Stories: python.org
Using FastAPI to Build Python Web APIs: Real Python Article
GitHub Copilot
GitHub Copilot: Fly With Python at the Speed of Thought
Anki: Powerful, Intelligent Flash Cards
friendly-traceback
Status of PEP657 in Python 3.11 by Pablo Galindo
Episode 69: Planning a Faster Future at the Python Language Summit
Metaflow: A Framework for Real-life Data Science
Lessons from a real Machine Learning project, part 1: from Jupyter to Luigi
Data pipelines, Luigi, Airflow: everything you need to know
Level up your Python skills with our expert-led courses:
Records and Sets: Selecting the Ideal Data Structure
Understanding Python List Comprehensions
Python Coding Interviews: Tips & Best Practices
Support the podcast & join our community of Pythonistas

Jul 16, 2021 • 58min
Planning a Faster Future at the Python Language Summit
Do you wonder what the future may hold for the Python language? Are there speed improvements coming soon? What if you could be in the room while the core developers discuss Python’s future? This week on the show, we have Joanna Jablonski, who was invited to the Python Language Summit 2021 as a journalist to summarize and document the event.
A small group of core developers from the Python community gather to work toward a healthy future for the language. Through presentations and group discussions, they share insights, ideas, and potential problems.
Joanna has been the executive editor at Real Python and she was invited to write a series of blog posts for the Python Software Foundation (PSF) that summarize the presentations and deeper conversations of the summit. We walk through the two days and discuss the topics covered.
Several of the presentations focused on performance and speeding up CPython. There were conversations about packaging, documentation, the standard library, handling exceptions, testing, and more.
Course Spotlight: Defining and Calling Python Functions
In this course, you’ll learn how to define and call your own Python function. You’ll also learn about passing data to your function and returning data from your function back to its calling environment.
Topics:
00:00:00 – Introduction
00:01:58 – What is the Python Language Summit?
00:06:44 – How do you summarize the talks?
00:08:17 – Terminology and technological level of the conversations
00:13:02 – PEP 654 — Exception Groups and except*
00:16:10 – Sponsor: Sentry
00:17:12 – Progress on Running Multiple Python Interpreters in Parallel in the Same Process
00:18:15 – CPython Performance Improvements at Instagram
00:20:41 – Making CPython Faster
00:23:22 – HPy — Present and Future
00:25:07 – Lightning Talks, Round 1
00:31:03 – Video Course Spotlight
00:32:34 – The Challenges of Packaging Python for a Linux Distro
00:36:12 – The Python Documentation Work Group
00:39:11 – What Is the stdlib?
00:42:07 – What Should I Work on as a Core Dev?
00:44:34 – Fuzzing and Testing Python With Properties
00:46:00 – Lightning Talks, Round 2
00:53:41 – What are you excited about in the world of Python?
00:54:46 – What do you want to learn next?
00:55:57 – Shout out and social connections
00:56:57 – Thanks and goodbye
Show Links:
Joanna Jablonski: Real Python Profile
Joanna Jablonski - Personal Site
Joanna’s Twitter
The 2021 Python Language Summit
The 2021 Python Language Summit: Welcome, Introductions, Guidelines
PEP 654 — Exception Groups and except*
Progress on Running Multiple Python Interpreters in Parallel in the Same Process
CPython Performance Improvements at Instagram
Making CPython Faster
HPy — Present and Future
Lightning Talks, Round 1
The Challenges of Packaging Python for a Linux Distro
The Python Documentation Work Group
What Is the stdlib?
What Should I Work on as a Core Dev?
Fuzzing and Testing Python With Properties
Lightning Talks, Round 2
Additional Links:
PEP 654 – Exception Groups and except*: Python Developer’s Guide PEP Index
Cinder: Instagram’s internal performance-oriented production version of CPython 3.8
CircuitPython: The easiest way to program microcontrollers
ABI - Application Binary Interface
Tiers of Execution in a high-performance interpreter for CPython
Mort, Elvis, Einstein, and You: Coding Horror
Ren’Py: A visual novel engine
Level up your Python skills with our expert-led courses:
Python Inner Functions
Defining and Calling Python Functions
Test-Driven Development With pytest
Support the podcast & join our community of Pythonistas

Jul 9, 2021 • 55min
Exploring the functools Module and Complex Numbers in Python
Are you ready to expand your Python knowledge into the intermediate to advanced territory? What tools are awaiting your discovery inside Python’s functools module? This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects.
We discuss an article about the functools module, which adds functionality for caching, function overloading, better definitions for decorated functions, and more. David talks about a new Real Python article about working with complex numbers in Python. We also cover a tutorial about troubleshooting memory problems in Python.
We cover several other articles and projects from the Python community including, DevOps interview questions, correlation analysis in Python, pivot and plot data with pandas, how to use Python and OpenCV to play online chess with a real chessboard, and generating hardware pinout diagrams as SVG images.
Course Spotlight: Python Decorators 101
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.
Topics:
00:00:00 – Introduction
00:01:56 – The Future of FastAPI and Pydantic Is Bright
00:04:33 – Simplify Complex Numbers With Python
00:10:37 – Functools: The Power of Higher-Order Functions in Python
00:18:40 – Sponsor: Sentry
00:19:42 – How to Pivot and Plot Data With Pandas
00:23:06 – devops-exercises: DevOps Interview Questions
00:32:09 – Video Course Spotlight
00:33:25 – Correlation Analysis 101 in Python
00:39:28 – How to Troubleshoot Memory Problems in Python
00:46:16 – Use Python and OpenCV to Play Online Chess With a Real Chessboard
00:49:28 – pinout: Generate Hardware Pinout Diagrams as SVG Images
00:54:21 – Thanks and goodbyes
Show Links:
The Future of FastAPI and Pydantic Is Bright – Not long ago there was some chatter on the internet about a change in Python 3.10 that would impact Python projects that check types at runtime. The discussion centered around FastAPI and Pydantic and had some folks worried about the future of those projects. In this article, FastAPI’s creator explains what the discussion was all about and why the future of FastAPI and Pydantic remains bright.
Simplify Complex Numbers With Python – In this tutorial, you’ll learn about the unique treatment of complex numbers in Python. Complex numbers are a convenient tool for solving scientific and engineering problems. You’ll experience the elegance of using complex numbers in Python with several hands-on examples.
Functools: The Power of Higher-Order Functions in Python – The functools module is one of the “hidden gems” of the Python standard library. This article takes you on a tour of everything in functools. You’ll learn how to implement caching, function overloading, and a whole lot more.
How to Pivot and Plot Data With Pandas – One of the challenges of working with data is knowing how to manipulate the data format for a particular analysis. And there’s no single correct format. You need to know how to melt, pivot, and transpose data into a format that fits whatever you’re analyzing. If you enjoy this article, be sure to also check out Stefanie’s Pandas Workshop.
devops-exercises: DevOps Interview Questions
Correlation Analysis 101 in Python – Correlation analysis is a useful part of exploratory data analysis. It can help you identify potential relationships between various features of your data. In this helpful guide, you’ll learn how to do correlation analysis in a pandas DataFrame. You’ll see how to display a correlation matrix as a heatmap and explore some guidelines for identifying when correlation might imply causation.
How to Troubleshoot Memory Problems in Python – Memory problems can be frustrating. They’re hard to diagnose and fix, and memory issues in Python applications can be especially frustrating thanks to the language’s garbage collection system. In this article, you’ll learn a six-step process for troubleshooting memory problems that the EvalML team used to solve a tricky problem with their library.
Projects:
play-online-chess-with-real-chess-board: Use Python and OpenCV to Play Online Chess With a Real Chessboard
pinout: Generate Hardware Pinout Diagrams as SVG Images
Additional Links:
functools: Python 3 Documentation
Primer on Python Decorators: Real Python Guide
Caching in Python Using the LRU Cache Strategy: Real Python Article
Caching in Python With lru_cache: Real Python Video Course
Measuring Memory Usage in Python: It’s Tricky!
Fritzing: Electronics Made Easy
KiCad EDA: A Cross Platform and Open Source Electronics Design Automation Suite
PcbDraw: Convert your KiCAD boards into nice looking 2D drawings
Four stages of competence: Wikipedia article
Level up your Python skills with our expert-led courses:
Python Decorators 101
Python Inner Functions
Plot With pandas: Python Data Visualization Basics
Support the podcast & join our community of Pythonistas


