About Tappan Moore
Video Editor | Real Python Core team · since 2019
Tappan edits every video course, runs a couple youtube channels, and does AV reviews. He has a BS in Electronic Media from Rensselaer Polytechnic Institute. He worked in Adobe Premiere for years before making the switch to DaVinci Resolve.
Outside of work, he rides an eskate 🛹 and collects operating systems.
Courses Contributed to by Tappan:
- Connecting LLMs to Your Data With Python MCP Servers
- Tapping Into the Zen of Python
- Building Type-Safe LLM Agents With Pydantic AI
- Use Codex CLI to Enhance Your Python Projects
- Testing Your Code With Python's unittest
- Leverage OpenAI's API in Your Python Projects
- Vector Databases and Embeddings With ChromaDB
- Using Loguru to Simplify Python Logging
- Adding Python to PATH
- Understanding CRUD Operations in SQL
- Downloading Files From URLs With Python
- Working With APIs in Python: Reading Public Data
- What Does Python's __init__.py Do?
- Start Building With FastAPI
- Write Python Docstrings Effectively
- Improving Your Tests With the Python Mock Object Library
- Getting Started With Google Gemini CLI
- Create Callable Instances With Python's .__call__()
- uv vs pip: Python Packaging and Dependency Management
- Intro to Object-Oriented Programming (OOP) in Python
- Tips for Using the AI Coding Editor Cursor
- Reading User Input From the Keyboard With Python
- Exploring Asynchronous Iterators and Iterables
- Using Functional Programming in Python
- Introduction to pandas
- Getting Started With Claude Code
- Break Out of Loops With Python's break Keyword
- Python Operators and Expressions
- Building UIs in the Terminal With Python Textual
- Speed Up Python With Concurrency
- Investigating Quasar Data With Polars and Interactive marimo Notebooks
- Python Descriptors
- What's New in Python 3.14
- Modern Python Linting With Ruff
- Strip Characters From a Python String
- Python Project Management With uv
- Python String Splitting
- A History of Python Versions and Features
- Profiling Performance in Python
- Deep vs Shallow Copies in Python
- Working With Python's .__dict__ Attribute
- Exploring Python T-Strings
- Working With Python's Built-in Exceptions
- Exploring Python Closures: Examples and Use Cases
- Getting Started With marimo Notebooks
- Exploring Protocols in Python
- Implementing the Factory Method Pattern in Python
- Starting With DuckDB and Python
- Exploring Python's list Data Type With Examples
- Python Continuous Integration and Deployment Using GitHub Actions
- Execute Your Python Scripts With a Shebang
- The LEGB Rule & Understanding Python Scope
- First Steps With LangChain
- Working With Missing Data in Polars
- Using the Python subprocess Module
- Thread Safety in Python: Locks and Other Techniques
- MySQL Databases and Python
- Creating a Python Dice Roll Application
- Checking for Membership Using Python's "in" and "not in" Operators
- Building a Code Image Generator With Python
- What Can You Do With Python?
- Using Structural Pattern Matching in Python
- Getting to Know Duck Typing in Python
- Working With Python Polars
- Single and Double Underscore Naming Conventions in Python
- Concatenating Strings in Python Efficiently
- Building a Python Command-Line To-Do App With Typer
- NumPy Techniques and Practical Examples
- Creating a Scalable Flask Web Application From Scratch
- Exploring Python's tuple Data Type With Examples
- Building Dictionary Comprehensions in Python
- Ways to Start Interacting With Python
- Building HTTP APIs With Django REST Framework
- Programming Sockets in Python
- Documenting Python Projects With Sphinx and Read the Docs
- Handling or Preventing Errors in Python: LBYL vs EAFP
- Managing Dependencies With Python Poetry
- Working With TOML and Python
- Formatting Floats Inside Python F-Strings
- Introduction to Web Scraping With Python
- Python's Magic Methods in Classes
- Understanding Python's Global Interpreter Lock (GIL)
- Using Type Hints for Multiple Return Types in Python
- What's New in Python 3.13
- Differences Between Python's Mutable and Immutable Types
- Advanced Python import Techniques
- Customizing VS Code Through Color Themes
- When to Use .__repr__() vs .__str__() in Python
- Using Pydantic to Simplify Python Data Validation
- Using Astropy for Astronomy With Python
- Exploring Astrophysics in Python With pandas and Matplotlib
- Sorting Dictionaries in Python: Keys, Values, and More
- Interacting With REST APIs and Python
- Simulate a Text File in Python
- pandas GroupBy: Grouping Real World Data in Python
- Exercises Course: Introduction to Web Scraping With Python
- Customize VS Code Settings
- Defining Python Constants for Code Maintainability
- Build a GUI Calculator With PyQt and Python
- Rounding Numbers in Python
- Listing All Files in a Directory With Python
- Python Interfaces: Object-Oriented Design Principles
- Efficient Iterations With Python Iterators and Iterables
- Building a Python GUI Application With Tkinter
- HTML and CSS Foundations for Python Developers
- Flattening a List of Lists in Python
- Working With Global Variables in Python Functions
- Python Basics Exercises: Scopes
- Using raise for Effective Exceptions
- Generating QR Codes With Python
- Python Deep Learning: PyTorch vs Tensorflow
- Finding Python Easter Eggs
- SQLite and SQLAlchemy in Python: Move Your Data Beyond Flat Files
- Python Basics Exercises: Dictionaries
- Creating Asynchronous Tasks With Celery and Django
- Python Basics Exercises: Installing Packages With pip
- Unleashing the Power of the Console With Rich
- Create Conway's Game of Life With Python
- Python Basics Exercises: Lists and Tuples
- Building Enumerations With Python's enum
- Python Basics: Lists and Tuples
- Create a Tic-Tac-Toe Python Game Engine With an AI Player
- Python Basics Exercises: Functions and Loops
- HTTP Requests With Python's urllib.request
- Python Basics Exercises: Reading and Writing Files
- Python Basics Exercises: Strings and String Methods
- How to Get the Current Time in Python
- Advent of Code: Solving Puzzles With Python
- Python Basics Exercises: Modules and Packages
- Python Basics: Modules and Packages
- Python Basics Exercises: Numbers and Math
- Using the bpython Enhanced REPL
- Python Basics Exercises: Building Systems With Classes
- Python Basics Exercises: Object-Oriented Programming
- Using Python's min() and max()
- What's New in Python 3.12
- Python Basics Exercises: Conditional Logic and Control Flow
- Design and Guidance: Object-Oriented Programming in Python
- Inheritance and Internals: Object-Oriented Programming in Python
- Class Concepts: Object-Oriented Programming in Python
- Create a Python Wordle Clone With Rich
- Replacing a String in Python
- Process Images Using the Pillow Library and Python
- What Does if __name__ == "__main__" Mean in Python?
- Reversing Strings in Python
- Creating Web Maps From Your Data With Python Folium
- Filtering Iterables With Python
- Jinja Templating
- Recursion in Python
- Python Basics: Reading and Writing Files
- Mazes in Python: Build, Visualize, Store, and Solve
- Getting the First Match From a Python List or Iterable
- Using k-Nearest Neighbors (kNN) in Python
- Metaclasses in Python
- Getting the Most Out of the Python Standard REPL
- Publishing Python Packages to PyPI
- Using Python's assert to Debug and Test Your Code
- Python Basics: Installing Packages With pip
- Using OrderedDict in Python
- Check if a Python String Contains a Substring
- YAML: Python's Missing Battery
- Summing Values the Pythonic Way With sum()
- Manipulating ZIP Files With Python
- Writing Clean, Pythonic Code With namedtuple
- Using the Terminal on Windows
- Getters and Setters in Python
- Python Basics: Building Systems With Classes
- Using the Terminal on Linux
- Python Basics: Object-Oriented Programming
- Python Basics Exercises: File System Operations
- Using the Terminal on macOS
- Build Cross-Platform GUI Apps With Kivy
- Python Basics: File System Operations
- Context Managers and Using Python's with Statement
- Python Basics: Dictionaries
- Using Python's pathlib Module
- Everyday Project Packaging With pyproject.toml
- Deploy a Django App With Gunicorn and Nginx
- Refactoring: Prepare Your Code to Get Help
- Python Basics: Scopes
- Cool New Features in Python 3.11
- Python Basics: Numbers and Math
- Using Multiple Constructors in Your Python Classes
- Python Basics: Strings and String Methods
- Sneaky REST APIs With Django Ninja
- Building Python Project Documentation With MkDocs
- Python Basics: Conditional Logic and Control Flow
- Building Command Line Interfaces With argparse
- Python Basics: Functions and Loops
- Building a URL Shortener With FastAPI and Python
- Caching in Python With lru_cache
- Exploring Special Function Parameters
- Python Basics: Finding and Fixing Code Bugs
- Managing Attributes With Python's property()
- Using the Python not Operator
- Using the Python and Operator
- Building a Site Connectivity Checker
- Python mmap: Doing File I/O With Memory Mapping
- Combining Data in pandas With concat() and merge()
- Write and Test a Python Function: Interview Practice
- Data Cleaning With pandas and NumPy
- Exploring Scopes and Closures in Python
- Using Python Class Constructors
- Testing Your Code With pytest
- Building a Django User Management System
- Exploring Keywords in Python
- Python REST APIs With FastAPI
- Using Python's datetime Module
- Python Basics: Code Your First Python Program
- Sorting Data in Python With pandas
- Counting With Python's Counter
- Exploring the Fibonacci Sequence With Python
- Starting With Linear Regression in Python
- Python any(): Powered Up Boolean Function
- Defining Python Functions With Optional Arguments
- Python's len() Function
- Looping With Python enumerate()
- Starting With Python IDLE
- Working With Pipenv
- Deploy Your Python Script on the Web With Flask
- Raising and Handling Python Exceptions
- Host Your Django Project on Heroku
- Binary, Bytes, and Bitwise Operators in Python
- Data Visualization Interfaces in Python With Dash
- Building a Neural Network & Making Predictions With Python AI
- Building Lists With Python's .append()
- Using plt.scatter() to Visualize Data in Python
- Reading Input and Writing Output in Python
- Writing Idiomatic Python
- Python Assignment Expressions and Using the Walrus Operator
- Using Pygame to Build an Asteroids Game in Python
- Cool New Features in Python 3.10
- Rock, Paper, Scissors With Python: A Command Line Game
- Pass by Reference in Python: Best Practices
- Using Data Classes in Python
- Graph Your Data With Python and ggplot
- Splitting Datasets With scikit-learn and train_test_split()
- Exploring the Python math Module
- Reading and Writing Files With pandas
- Using the Python return Statement Effectively
- Using sleep() to Code a Python Uptime Bot
- The pandas DataFrame: Working With Data Efficiently
- Speech Recognition With Python
- The Square Root Function in Python
- Defining and Calling Python Functions
- Python Inner Functions
- Python vs JavaScript for Python Developers
- Using pandas to Make a Gradebook in Python
- Python Basics: Setting Up Python
- Explore Your Dataset With pandas
- How to Set Up a Django Project
- Using the Python or Operator
- Stacks and Queues: Selecting the Ideal Data Structure
- Simplify Python GUI Development With PySimpleGUI
- Python's map() Function: Transforming Iterables
- Learn Text Classification With Python and Keras
- Start Managing Multiple Python Versions With pyenv
- Python vs Java: Object Oriented Programming
- Understanding Python List Comprehensions
- Records and Sets: Selecting the Ideal Data Structure
- Python Booleans: Leveraging the Values of Truth
- Django View Authorization: Restricting Access
- Navigating Namespaces and Scope in Python
- Dictionaries and Arrays: Selecting the Ideal Data Structure
- Creating PyQt Layouts for GUI Applications
- Python Modulo: Using the % Operator
- Plot With pandas: Python Data Visualization Basics
- Evaluate Expressions Dynamically With Python eval()
- Introduction to Sorting Algorithms in Python
- Django Admin Customization
- Serializing Objects With the Python pickle Module
- Python Turtle for Beginners
- How Python Manages Memory
- Formatting Python Strings
- Regular Expressions and Building Regexes in Python
- Handling Missing Keys With the Python defaultdict Type
- Simulating Real-World Processes in Python With SimPy
- Creating a Binary Search in Python
- Getting Started With MicroPython
- Web Scraping With Beautiful Soup and Python
- Cool New Features in Python 3.9
- Using Google Login With Flask
- Working With Linked Lists in Python
- Command Line Interfaces in Python
- Exploring HTTPS and Cryptography in Python
- Editing Excel Spreadsheets in Python With openpyxl
- Django Redirects
- Identify Invalid Python Syntax
- Practical Recipes for Working With Files in Python
- Python's None: Null in Python
- Mastering Python's Built-in time Module
- Grow Your Python Portfolio With 13 Intermediate Project Ideas
- Pointers and Objects in Python
- Unicode in Python: Working With Character Encodings
- Creating a Discord Bot in Python
- Python Generators 101
- Getting the Most Out of a Python Traceback
- Parallel Iteration With Python's zip() Function
- A Beginner's Guide to pip
- Convert a Python String to int
- Exploring unittest.mock in Python
- The Python print() Function: Go Beyond the Basics
- Structuring a Python Application
- Python Coding Interviews: Tips & Best Practices
- Inheritance and Composition: A Python OOP Guide
- Arduino With Python: Getting Started
- Comparing Python Objects the Right Way: "is" vs "=="
- Using NumPy's np.arange() Effectively
- Make a 2D Side-Scroller Game With PyGame
- Defining Main Functions in Python
- Implementing a Stack in Python
- How to Work With a PDF in Python
- Finding the Perfect Python Code Editor
- Using Sets in Python
- Python Modules and Packages: An Introduction
- Exploring Basic Data Types in Python
- Supercharge Your Classes With Python super()
- Python args and kwargs: Demystified
- Sorting Data With Python
- Python Dictionary Iteration: Advanced Tips & Tricks
- Documenting Code in Python
- Variables in Python
- Demystifying Python, Boto3, and AWS S3
- KeyError Exceptions in Python and How to Handle Them
- Threading in Python
- Thinking Recursively With Python
- Cool New Features in Python 3.8
- Python Type Checking
- Python Plotting With Matplotlib
- The Python range() Function
- Getting Started With Django: Building a Portfolio App
- Strings and Character Data in Python
- Thonny: A Beginner-Friendly Python Editor
- Debugging in Python With pdb
- Absolute vs Relative Imports in Python
- Lists and Tuples in Python
- Using Python Lambda Functions
- Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn
- Traditional Face Detection Using Python
- Using Dictionaries in Python
- How to Write Pythonic Loops
- Reading and Writing Files in Python
- From Python's Functional Primitives to Parallelism
- Generating Random Data in Python
- How to Publish Your Own Python Package to PyPI
- OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods
- Continuous Integration With Python
- Installing Python on Windows, macOS, and Linux
- Writing Cleaner Python Code With PyLint
- Python Context Managers and the "with" Statement
- Build a Location-Based Web App With Django and GeoDjango
- Conditional Statements in Python (if/elif/else)
- Sending Emails Using Python
- Immutability in Python
- Hands-On Python 3 Concurrency With the asyncio Module
- Idiomatic pandas: Tricks & Features You May Not Know
- Making HTTP Requests With Python
- Test-Driven Development With pytest
- Pythonic OOP String Conversion: .__repr__() vs .__str__()
- Emulating switch/case Statements in Python
- Migrating Applications From Python 2 to Python 3
- For Loops in Python (Definite Iteration)
- Using List Comprehensions Effectively
- Mastering While Loops
- Reading and Writing CSV Files
- Using Jupyter Notebooks
- Working With Python Virtual Environments