The Real Python Podcast

Real Python
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app