About David Amos
Hey there 👋🏼
I’m a freelance writer and recovering mathematician passionate about exploring mathematics with code. I love breaking technical concepts down into easy-to-understand chunks to help people learn.
In addition to the tutorials and articles listed below, I am also the author of Real Python’s book Python Basics: A Practical Introduction to Python 3 which reached the #1 spot on Amazon’s Python Programming charts.
Tutorials by David:
- Create and Modify PDF Files in Python
- A Practical Introduction to Web Scraping in Python
- Object-Oriented Programming (OOP) in Python
- Python GUI Programming With Tkinter
- How to Round Numbers in Python
- Python News: What's New From July 2021
- Python News: What's New From June 2021
- Python News: What's New From May 2021
- Python News: What's New From April 2021
- Python News: What's New From March 2021
- Real Python's Office Hours: Learn With Python Experts in Real Time
- Numbers in Python
- Find & Fix Code Bugs in Python: Debug With IDLE
- Python itertools By Example
- The Ultimate Guide To Speech Recognition With Python
Courses by David:
Tutorials Contributed to by David:
- Sets in Python
- Python for Loops: The Pythonic Way
- Top Python Game Engines
- Develop Data Visualization Interfaces in Python With Dash
- Build a Dice-Rolling Application With Python
- Build a Tic-Tac-Toe Game With Python and Tkinter
- How to Install Python on Your System: A Guide
- pandas GroupBy: Your Guide to Grouping Data in Python
- Understanding the Python Mock Object Library
- Build a Personal Diary With Django and Python
- Get Started With Django User Management
- The Walrus Operator: Python's Assignment Expressions
- Python's F-String for String Interpolation and Formatting
- Logging in Python
- Speed Up Your Python Program With Concurrency
- Python range(): Represent Numerical Ranges
- PyTorch vs TensorFlow for Your Python Deep Learning Project
- Build a Blog Using Django, GraphQL, and Vue
- Build Your Own Face Recognition Tool With Python
- Linear Algebra in Python: Matrix Inverses and Least Squares
- Working With Linear Systems in Python With scipy.linalg
- Discover bpython: A Python REPL With IDE-Like Features
- Build Your Python Project Documentation With MkDocs
- How to Publish an Open-Source Python Package to PyPI
- Draw the Mandelbrot Set in Python
- Build and Submit HTML Forms With Django – Part 4
- Build and Handle POST Requests in Django – Part 3
- Build a Django Front End With Bulma – Part 2
- Build a Social Network With Django – Part 1
- Build a Command-Line To-Do App With Python and Typer
- Build a Content Aggregator in Python
- Using the "not" Boolean Operator in Python
- A Roadmap to XML Parsers in Python
- Representing Rational Numbers With Python Fractions
- Python 3.10: Cool New Features for You to Try
- Hosting a Django Project on Heroku
- A Python Guide to the Fibonacci Sequence
- How Long Does It Take to Learn Python?
- Python's Counter: The Pythonic Way to Count Objects
- Simplify Complex Numbers With Python
- Python's filter(): Extract Values From Iterables
- Visualizing Data in Python Using plt.scatter()
- Build a Bulk File Rename Tool With Python and PyQt
- Natural Language Processing With Python's NLTK Package
- Build a Platform Game in Python With Arcade
- Python Basics: Paperback Now Available!
- Build a Python Directory Tree Generator for the Command Line
- The k-Nearest Neighbors (kNN) Algorithm in Python
- Build an Asteroids Game With Python and Pygame
- Python AI: How to Build a Neural Network & Make Predictions
- Build a Contact Book With Python, PyQt, and SQLite
- Brython: Python in Your Browser
- Python Microservices With gRPC
- Make Your First Python Game: Rock, Paper, Scissors!
- Bitwise Operators in Python
- Use Sentiment Analysis With Python to Classify Movie Reviews
- Fourier Transforms With scipy.fft: Python Signal Processing
- Python 3.9: Cool New Features for You to Try
- Python Community Interview With David Amos
- Plot With pandas: Python Data Visualization for Beginners
- Common Python Data Structures (Guide)
- Data Version Control With Python and DVC
- Pass by Reference in Python: Background and Best Practices
- Generative Adversarial Networks: Build Your First Models
- Python Packages: Five Real Python Favorites
- K-Means Clustering in Python: A Practical Guide
- pandas Project: Make a Gradebook With Python & pandas
- The Python heapq Module: Using Heaps and Priority Queues
- PySimpleGUI: The Simple Way to Create a GUI With Python
- Build Physical Projects With Python on the Raspberry Pi
- pandas: How to Read and Write Files
- Using PyInstaller to Easily Distribute Python Applications
- Traditional Face Detection With Python
- Reading and Writing Files in Python (Guide)
- Python Development in Visual Studio Code
- Working With Files in Python
- Async IO in Python: A Complete Walkthrough
- Memory Management in Python
- Getting Started With Testing in Python
- Image Segmentation Using Color Spaces in OpenCV + Python
- Absolute vs Relative Imports in Python
- Advanced Git Tips for Python Developers
- Operator and Function Overloading in Custom Python Classes
- Look Ma, No for Loops: Array Programming With NumPy
Courses Contributed to by David:
- Introduction to Web Scraping With Python
- Exercises Course: Introduction to Web Scraping With Python
- Rounding Numbers in Python
- Building a Python GUI Application With Tkinter
- Python Basics Exercises: Scopes
- Python Basics Exercises: Dictionaries
- Python Basics Exercises: Installing Packages With pip
- Python Basics Exercises: Lists and Tuples
- Python Basics: Lists and Tuples
- Python Basics Exercises: Functions and Loops
- Python Basics Exercises: Reading and Writing Files
- Python Basics Exercises: Strings and String Methods
- Python Basics Exercises: Modules and Packages
- Python Basics: Modules and Packages
- Python Basics Exercises: Building Systems With Classes
- Python Basics Exercises: Object-Oriented Programming
- Python Basics Exercises: Conditional Logic and Control Flow
- Python Basics: Reading and Writing Files
- Python Basics: Installing Packages With pip
- Python Basics: Object-Oriented Programming
- Python Basics Exercises: File System Operations
- Python Basics: File System Operations
- Python Basics: Dictionaries
- Python Basics: Scopes
- Python Basics: Numbers and Math
- Python Basics: Strings and String Methods
- Python Basics: Conditional Logic and Control Flow
- Python Basics: Functions and Loops
- Python Basics: Finding and Fixing Code Bugs
- Python Basics: Code Your First Python Program
- Speech Recognition With Python
- Intro to Object-Oriented Programming (OOP) in Python
Podcast Episodes Featuring David:
- The Real Python Podcast – Episode #212: Digging Into Graph Theory in Python With David Amos
- The Real Python Podcast – Episode #76: Harnessing Python's math Module and Exposing Practical Pandas Functions
- The Real Python Podcast – Episode #74: Python's Assignment Expressions and Fixing a Botched Release to PyPI
- The Real Python Podcast – Episode #72: Starting With FastAPI and Examining Python's Import System
- The Real Python Podcast – Episode #70: What Can You Do With Python and Counting Objects Using "Counter"
- The Real Python Podcast – Episode #68: Exploring the functools Module and Complex Numbers in Python
- The Real Python Podcast – Episode #66: Practicing Python With CSV Files and Extracting Values With "filter()"
- The Real Python Podcast – Episode #64: Detecting Deforestation With Python & Using GraphQL With Django and Vue
- The Real Python Podcast – Episode #62: Selecting the Ideal Data Structure & Unravelling Python's "pass" and "with"
- The Real Python Podcast – Episode #60: Building a Platform Game With Arcade and Covering Python News Monthly
- The Real Python Podcast – Episode #56: OrderedDict vs dict and Object Oriented Programming in Python vs Java
- The Real Python Podcast – Episode #54: Building a Neural Network and How to Write Tests in Python
- The Real Python Podcast – Episode #52: Connecting to MongoDB and Updates on the Python Packaging Landscape
- The Real Python Podcast – Episode #50: Consuming APIs With Python and Building Microservices With gRPC
- The Real Python Podcast – Episode #48: Stochastic Gradient Descent and Deploying Your Python Scripts on the Web
- The Real Python Podcast – Episode #46: C for Python Developers and Data Visualization With Dash
- The Real Python Podcast – Episode #42: What Is Data Engineering and Researching 10 Million Jupyter Notebooks
- The Real Python Podcast – Episode #41: 2020 Real Python Articles in Review
- The Real Python Podcast – Episode #40: How Python Manages Memory and Creating Arrays With np.linspace
- The Real Python Podcast – Episode #38: Looping With enumerate() and Python GUIs With PyQt
- The Real Python Podcast – Episode #36: Sentiment Analysis, Fourier Transforms, and More Python Data Science
- The Real Python Podcast – Episode #34: The Python Modulo Operator & Managing Data With SQLite and SQLAlchemy
- The Real Python Podcast – Episode #32: Our New "Python Basics" Book & Filling the Gaps in Your Learning Path
- The Real Python Podcast – Episode #31: Python Return Statement Best Practices and Working With the map() Function
- The Real Python Podcast – Episode #27: Preparing for an Interview With Python Practice Problems
- The Real Python Podcast – Episode #25: Data Version Control in Python and Real Python Video Transcripts
- The Real Python Podcast – Episode #23: Python Wheels and Pass by Reference in Python
- The Real Python Podcast – Episode #21: Exploring K-means Clustering and Building a Gradebook With Pandas
- The Real Python Podcast – Episode #19: Advanced Python Import Techniques and Managing Users in Django
- The Real Python Podcast – Episode #17: Linear Programming, PySimpleGUI, and More
- The Real Python Podcast – Episode #15: Python Regular Expressions, Views vs Copies in Pandas, and More
- The Real Python Podcast – Episode #13: PDFs in Python and Projects on the Raspberry Pi