About Leodanis Pozo Ramos
Leodanis Pozo Ramos — Python Educator
Core Real Python team · since 2020
Leodanis is a self-taught Python developer, educator, and technical writer with over 10 years of experience. After earning a master’s degree in Quality Assurance and spending about a decade as a machinery lubrication engineer, he pivoted to Python programming.
At Real Python, Leodanis creates in-depth Python tutorials covering core language features, GUI programming, and command-line interface (CLI) development. His example-driven style has helped many Python learners level up their coding skills.
Leodanis has also published expert-level articles for leading programming sites, including PythonGUIs.com and StackAbuse.com. He is passionate about making complex topics approachable for new developers and advocating best practices in Python.
Tutorials by Leodanis:
- Defining Your Own Python Function
- Control Flow Structures in Python
- Sets in Python
- Managing Python Projects With uv: An All-in-One Solution
- Namespaces in Python
- Using Python's .__dict__ to Work With Attributes
- Python Code Quality: Best Practices and Tools
- Python News Roundup: March 2025
- Python while Loops: Repeating Tasks Conditionally
- Python for Loops: The Pythonic Way
- Build a Dice-Rolling Application With Python
- Build a Tic-Tac-Toe Game With Python and Tkinter
- Providing Multiple Constructors in Your Python Classes
- A Guide to Modern Python String Formatting Tools
- Lists vs Tuples in Python
- Python's zipfile: Manipulate Your ZIP Files Efficiently
- Python's Mutable vs Immutable Types: What's the Difference?
- Python's "in" and "not in" Operators: Check for Membership
- Python's raise: Effectively Raising Exceptions in Your Code
- Getters and Setters: Manage Attributes in Python
- Python Class Constructors: Control Your Object Instantiation
- Python Constants: Improve Your Code's Maintainability
- How to Install Python on Your System: A Guide
- Python's min() and max(): Find Smallest and Largest Values
- Python's assert: Debug and Test Your Code Like a Pro
- Variables in Python: Usage and Best Practices
- Operators and Expressions in Python
- Iterators and Iterables in Python: Run Efficient Iterations
- Strings and Character Data in Python
- How to Flatten a List of Lists in Python
- Basic Data Types in Python: A Quick Exploration
- Dictionaries in Python
- Build Enumerations of Constants With Python's Enum
- Python's property(): Add Managed Attributes to Your Classes
- Python Classes: The Power of Object-Oriented Programming
- Build Command-Line Interfaces With Python's argparse
- Python Set Comprehensions: How and When to Use Them
- Using and Creating Global Variables in Your Python Functions
- How to Run Your Python Scripts and Code
- Python String Formatting: Available Tools and Their Features
- Efficient String Concatenation in Python
- How to Iterate Through a Dictionary in Python
- Using the Python zip() Function for Parallel Iteration
- Python Dictionary Comprehensions: How and When to Use Them
- Python Closures: Common Use Cases and Examples
- Syntactic Sugar: Why Python Is Sweet and Pythonic
- Build a Contact Book App With Python, Textual, and SQLite
- Python News Roundup: August 2024
- Asynchronous Iterators and Iterables in Python
- Python Protocols: Leveraging Structural Subtyping
- Python's Built-in Functions: A Complete Exploration
- Creating Great README Files for Your Python Projects
- String Interpolation in Python: Exploring Available Tools
- Python's Built-in Exceptions: A Walkthrough With Examples
- Python News: What's New From April 2024
- Python's unittest: Writing Unit Tests for Your Code
- Write Unit Tests for Your Python Code With ChatGPT
- Python's __all__: Packages, Modules, and Wildcard Imports
- Duck Typing in Python: Writing Flexible and Decoupled Code
- BNF Notation: Dive Deeper Into Python's Grammar
- Python News: What's New From January 2024
- Python's Format Mini-Language for Tidy Strings
- Python's Magic Methods: Leverage Their Power in Your Classes
- Build a Hangman Game With Python and PySimpleGUI
- Single and Double Underscores in Python Names
- Build Conway's Game of Life With Python
- Document Your Python Code and Projects With ChatGPT
- Python's tuple Data Type: A Deep Dive With Examples
- Python News: What's New From August 2023
- Click and Python: Build Extensible and Composable CLI Apps
- Python 3.12 Preview: More Intuitive and Consistent F-Strings
- Python's list Data Type: A Deep Dive With Examples
- Python's .__call__() Method: Creating Callable Instances
- SOLID Principles: Improve Object-Oriented Design in Python
- Python News: What's New From March 2023
- Python's del: Remove References From Scopes and Containers
- The Python Standard REPL: Try Out Code and Ideas Quickly
- Python's Assignment Operator: Write Robust Assignments
- Python's doctest: Document and Test Your Code at Once
- Python News: What's New From September 2022
- Custom Python Strings: Inheriting From str vs UserString
- Custom Python Lists: Inheriting From list vs UserList
- Python and PyQt: Building a GUI Desktop Calculator
- Python's exec(): Execute Dynamically Generated Code
- Custom Python Dictionaries: Inheriting From dict vs UserDict
- How Can You Emulate Do-While Loops in Python?
- LBYL vs EAFP: Preventing or Handling Errors in Python
- Python News: What's New From March 2022
- Build a Site Connectivity Checker in Python
- Python's all(): Check Your Iterables for Truthiness
- Python Zip Imports: Distribute Modules and Packages Quickly
- Build a Command-Line To-Do App With Python and Typer
- Python's zipapp: Build Executable Zip Applications
- Using the "not" Boolean Operator in Python
- Python's sum(): The Pythonic Way to Sum Values
- Reverse Strings in Python: reversed(), Slicing, and More
- Using the "and" Boolean Operator in Python
- Python's deque: Implement Efficient Queues and Stacks
- Python's ChainMap: Manage Multiple Contexts Effectively
- Python's collections: A Buffet of Specialized Data Types
- What Can I Do With Python?
- Python's Counter: The Pythonic Way to Count Objects
- Reverse Python Lists: Beyond .reverse() and reversed()
- Python's filter(): Extract Values From Iterables
- Context Managers and Python's with Statement
- Build a Bulk File Rename Tool With Python and PyQt
- Write Pythonic and Clean Code With namedtuple
- Build a Python Directory Tree Generator for the Command Line
- OrderedDict vs dict in Python: The Right Tool for the Job
- Build a Contact Book With Python, PyQt, and SQLite
- Python and MongoDB: Connecting to NoSQL Databases
- Python Inner Functions: What Are They Good For?
- Qt Designer and Python: Build Your GUI Applications Faster
- How to Use Python: Your First Steps
- Python's .append(): Add Items to Your Lists in Place
- Use PyQt's QThread to Prevent Freezing GUIs
- Handling SQL Databases With PyQt: The Basics
- PyQt Layouts: Create Professional-Looking GUI Applications
- Python and PyQt: Creating Menus, Toolbars, and Status Bars
- Python's map(): Processing Iterables Without a Loop
- The Python return Statement: Usage and Best Practices
- Python's reduce(): From Functional to Pythonic Style
- Python eval(): Evaluate Expressions Dynamically
- Python Scope & the LEGB Rule: Resolving Names in Your Code
- Using the Python defaultdict Type for Handling Missing Keys
- Using the "or" Boolean Operator in Python
Tutorials Leodanis Contributed to:
- Python's Bytearray: A Mutable Sequence of Bytes
- Python Textual: Build Beautiful UIs in the Terminal
- Bytes Objects: Handling Binary Data in Python
- Create and Modify PDF Files in Python
- How to Get a List of All Files in a Directory With Python
- How to Remove Items From Lists in Python
- Using Python's pip to Manage Your Projects' Dependencies
- YAML: The Missing Battery in Python
- Python's F-String for String Interpolation and Formatting
- Python range(): Represent Numerical Ranges
- Using the len() Function in Python
- Model-View-Controller (MVC) in Python Web Apps: Explained With Lego
- Python's Array: Working With Numeric Data Efficiently
- Build a Hangman Game for the Command Line in Python
- Build a Code Image Generator With Python
- Use ChatGPT to Learn Python Programming
- When Should You Use .__repr__() vs .__str__() in Python?
- Discover bpython: A Python REPL With IDE-Like Features
- Build Your Python Project Documentation With MkDocs
- Build a Hash Table in Python With TDD
- Python 3.11 Preview: Even Better Error Messages
- Raining Outside? Build a Weather CLI App With Python
- A Python Guide to the Fibonacci Sequence
- How Long Does It Take to Learn Python?
- Using Python Optional Arguments When Defining Functions
- Python and REST APIs: Interacting With Web Services
- Python Practice Problems: Parsing CSV Files
- The LEGB Rule & Understanding Python Scope (Course)
- Creating a Python Dice Roll Application (Course)
- Checking for Membership Using Python's "in" and "not in" Operators (Course)
- What Can You Do With Python? (Course)
- Getting to Know Duck Typing in Python (Course)
- Single and Double Underscore Naming Conventions in Python (Course)
- Concatenating Strings in Python Efficiently (Course)
- Building a Python Command-Line To-Do App With Typer (Course)
- Exploring Python's tuple Data Type With Examples (Course)
- Building Dictionary Comprehensions in Python (Course)
- Handling or Preventing Errors in Python: LBYL vs EAFP (Course)
- Python's Magic Methods in Classes (Course)
- Differences Between Python's Mutable and Immutable Types (Course)
- Defining Python Constants for Code Maintainability (Course)
- Build a GUI Calculator With PyQt and Python (Course)
- Efficient Iterations With Python Iterators and Iterables (Course)
- Flattening a List of Lists in Python (Course)
- Working With Global Variables in Python Functions (Course)
- Using raise for Effective Exceptions (Course)
- Create Conway's Game of Life With Python (Course)
- Building Enumerations With Python's enum (Course)
- Using Python's min() and max() (Course)
- Design and Guidance: Object-Oriented Programming in Python (Course)
- Inheritance and Internals: Object-Oriented Programming in Python (Course)
- Class Concepts: Object-Oriented Programming in Python (Course)
- Reversing Strings in Python (Course)
- Filtering Iterables With Python (Course)
- Getting the Most Out of the Python Standard REPL (Course)
- Using Python's assert to Debug and Test Your Code (Course)
- Using OrderedDict in Python (Course)
- Summing Values the Pythonic Way With sum() (Course)
- Manipulating ZIP Files With Python (Course)
- Writing Clean, Pythonic Code With namedtuple (Course)
- Getters and Setters in Python (Course)
- Context Managers and Using Python's with Statement (Course)
- Using Multiple Constructors in Your Python Classes (Course)
- Building Command Line Interfaces With argparse (Course)
- Managing Attributes With Python's property() (Course)
- Using the Python not Operator (Course)
- Using the Python and Operator (Course)
- Building a Site Connectivity Checker (Course)
- Using Python Class Constructors (Course)
- Counting With Python's Counter (Course)
- Building Lists With Python's .append() (Course)
- Using the Python return Statement Effectively (Course)
- Defining and Calling Python Functions (Course)
- Python Inner Functions (Course)
- Python Basics: Setting Up Python (Course)
- Using the Python or Operator (Course)
- Python's map() Function: Transforming Iterables (Course)
- Navigating Namespaces and Scope in Python (Course)
- Creating PyQt Layouts for GUI Applications (Course)
- Evaluate Expressions Dynamically With Python eval() (Course)
- Formatting Python Strings (Course)
- Handling Missing Keys With the Python defaultdict Type (Course)
- Parallel Iteration With Python's zip() Function (Course)
- Using Sets in Python (Course)
- Exploring Basic Data Types in Python (Course)
- Python Dictionary Iteration: Advanced Tips & Tricks (Course)
- Variables in Python (Course)
- Strings and Character Data in Python (Course)
- Lists and Tuples in Python (Course)
- Using Dictionaries in Python (Course)
- Installing Python on Windows, macOS, and Linux (Course)
- Python String Formatting Tips & Best Practices (Course)
- Running Python Scripts (Course)
- For Loops in Python (Definite Iteration) (Course)
- Mastering While Loops (Course)