About Brenda Weleschuk
Brenda Weleschuk — Editor
Core Real Python team · since 2024
As the Editor at Real Python, Brenda reviews and refines all learning resources to ensure clarity, accuracy, and a learner-first focus. She enjoys working closely with authors and educators to shape engaging tutorials that help Python learners grow their skills.
With a B.A. in English and a background in instructional design, technical writing/editing, and teaching, Brenda brings a sharp editorial eye to the final stages of the content pipeline.
Tutorials by Brenda:
Tutorials Contributed to by Brenda:
- Your Guide to the Python print() Function
- Python enumerate(): Simplify Loops That Need Counters
- Write Pythonic and Clean Code With namedtuple
- Defining Your Own Python Function
- Python Hits the Big Screen and Other Python News for June 2025
- How to Find an Absolute Value in Python
- How Can You Structure Your Python Script?
- Control Flow Structures in Python
- marimo: A Reactive, Reproducible Notebook
- Nested Loops in Python
- How to Group Data Using Polars .group_by()
- How to Get the Most Out of PyCon US
- Python's T-Strings Coming Soon and Other Python News for May 2025
- How to Use Loguru for Simpler Python Logging
- Sets in Python
- Modern Web Automation With Python and Selenium
- Managing Python Projects With uv: An All-in-One Solution
- Getting Started With Python IDLE
- How to Copy Objects in Python: Shallow vs Deep Copy Explained
- How to Exit Loops Early With the Python Break Keyword
- Namespaces in Python
- Using Python's .__dict__ to Work With Attributes
- Python News Roundup: April 2025
- How to Strip Characters From a Python String
- Python's Bytearray: A Mutable Sequence of Bytes
- Introducing DuckDB
- Python Code Quality: Best Practices and Tools
- LangGraph: Build Stateful AI Agents in Python
- Python's Instance, Class, and Static Methods Demystified
- Python Textual: Build Beautiful UIs in the Terminal
- Python News Roundup: March 2025
- Bytes Objects: Handling Binary Data in Python
- Python while Loops: Repeating Tasks Conditionally
- How to Work With Polars LazyFrames
- How to Use sorted() and .sort() in Python
- How to Manage Python Projects With pyproject.toml
- Python News Roundup: February 2025
- Python Keywords: An Introduction
- How to Join Strings in Python
- How to Split a String in Python
- Python for Loops: The Pythonic Way
- Build a Quiz Application With Python
- Build a Dice-Rolling Application With Python
- Develop Data Visualization Interfaces in Python With Dash
- Top Python Game Engines
- Natural Language Processing With spaCy in 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
- Python & APIs: A Winning Combo for Reading Public Data
- Split Your Dataset With scikit-learn's train_test_split()
- How to Split a Python List or Iterable Into Chunks
- 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
- Lists vs Tuples in Python
- Python Folium: Create Web Maps From Your Data
- Python's raise: Effectively Raising Exceptions in Your Code
- How to Flush the Output of the Python Print Function
- How to Download Files From URLs With Python
- Executing Python Scripts With a Shebang
- Python and TOML: New Best Friends
- How to Deal With Missing Data in Polars
- Getters and Setters: Manage Attributes in Python
- Create and Modify PDF Files 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
- Understanding the Python Mock Object Library
- Python's min() and max(): Find Smallest and Largest Values
- The subprocess Module: Wrapping Programs With Python
- NumPy's max() and maximum(): Find Extreme Values in Arrays
- Get Started With Django: Build a Portfolio App
- Build a Personal Diary With Django and Python
- Variables in Python: Usage and Best Practices
- How to Get a List of All Files in a Directory With Python
- Primer on Jinja Templating
- Python's assert: Debug and Test Your Code Like a Pro
- How to Write Beautiful Python Code With PEP 8
- Inheritance and Composition: A Python OOP Guide
- Operators and Expressions in Python
- Python's pathlib Module: Taming the File System
- HTML and CSS for Python Developers
- Python's urllib.request for HTTP Requests
- Image Processing With the Python Pillow Library
- Iterators and Iterables in Python: Run Efficient Iterations
- How to Remove Items From Lists in Python
- Using Python's pip to Manage Your Projects' Dependencies
- Working With JSON Data in Python
- Strings and Character Data in Python
- How to Flatten a List of Lists in Python
- Basic Data Types in Python: A Quick Exploration
- Get Started With Django User Management
- Dictionaries in Python
- Build Enumerations of Constants With Python's Enum
- Python Classes: The Power of Object-Oriented Programming
- Object-Oriented Programming (OOP) in Python
- Python's property(): Add Managed Attributes to Your Classes
- Dependency Management With Python Poetry
- The Walrus Operator: Python's Assignment Expressions
- YAML: The Missing Battery in Python
- Build Command-Line Interfaces With Python's argparse
- Sorting a Python Dictionary: Values, Keys, and More
- Primer on Python Decorators
- Python Set Comprehensions: How and When to Use Them
- Python News Roundup: December 2024
- Effective Python Testing With pytest
- Asynchronous Tasks With Django and Celery
- Python Timer Functions: Three Ways to Monitor Your Code
- How to Run Your Python Scripts and Code
- Using and Creating Global Variables in Your Python Functions
- How to Round Numbers in Python
- Linear Regression in Python
- Python GUI Programming With Tkinter
- When to Use a List Comprehension in Python
- Socket Programming in Python (Guide)
- Expression vs Statement in Python: What's the Difference?
- Basic Input and Output in Python
- How to Check if a Python String Contains a Substring
- Beautiful Soup: Build a Web Scraper With Python
- Python Exceptions: An Introduction
- Python String Formatting: Available Tools and Their Features
- Logging in Python
- Python Virtual Environments: A Primer
- Python's F-String for String Interpolation and Formatting
- Continuous Integration and Deployment for Python With GitHub Actions
- Speed Up Your Python Program With Concurrency
- Python range(): Represent Numerical Ranges
- Efficient String Concatenation in Python
- How to Iterate Through a Dictionary in Python
- NumPy Practical Examples: Useful Techniques
- Interacting With Python
- Using the Python zip() Function for Parallel Iteration
- Using the len() Function in Python
- Python Dictionary Comprehensions: How and When to Use Them
- Python News Roundup: November 2024
- How to Reset a pandas DataFrame Index
- The Python Square Root Function
- Python Closures: Common Use Cases and Examples
- Python Thread Safety: Using a Lock and Other Techniques
- Structural Pattern Matching in Python
- Syntactic Sugar: Why Python Is Sweet and Pythonic
- Build a Contact Book App With Python, Textual, and SQLite
- Python News Roundup: October 2024
- Python 3.13: Cool New Features for You to Try
- Python 3.13 Preview: A Modern REPL
- Python 3.13 Preview: Free Threading and a JIT Compiler
- How to Use Conditional Expressions With NumPy where()
- Python News Roundup: September 2024
- Generate Images With DALL·E and the OpenAI API
- Web Scraping With Scrapy and MongoDB
- Python News Roundup: August 2024
- Asynchronous Iterators and Iterables in Python
- Functional Programming in Python: When and How to Use It
- How to Write an Installable Django App
- Hugging Face Transformers: Leverage Open-Source AI in Python
- Python Protocols: Leveraging Structural Subtyping
- How Do You Choose Python Function Names?
- Python News Roundup: July 2024
- Python's Built-in Functions: A Complete Exploration
- Creating Great README Files for Your Python Projects
- Build a Guitar Synthesizer: Play Musical Tablature in Python
- Ruff: A Modern Python Linter for Error-Free and Maintainable Code
- Python Mappings: A Comprehensive Guide
- Python News: What's New From May 2024
- String Interpolation in Python: Exploring Available Tools
- What Are CRUD Operations?
- How to Create Pivot Tables With pandas
- The Python calendar Module: Create Calendars With Python
- Python's Built-in Exceptions: A Walkthrough With Examples
- What Is the __pycache__ Folder in Python?
- PyTorch vs TensorFlow for Your Python Deep Learning Project
- Python News: What's New From April 2024
- Python Sequences: A Comprehensive Guide
- Python's unittest: Writing Unit Tests for Your Code
- What's Lazy Evaluation in Python?
- Write Unit Tests for Your Python Code With ChatGPT
- How to Format Floats Within F-Strings in Python
- Build a Blog Using Django, GraphQL, and Vue
- Pydantic: Simplifying Data Validation in Python
- Python News: What's New From March 2024
- Install and Execute Python Applications Using pipx
- Reading and Writing WAV Files in Python
- Prompt Engineering: A Practical Example
- Build a Python Turtle Game: Space Invaders Clone
- Model-View-Controller (MVC) in Python Web Apps: Explained With Lego
- Python News: What's New From February 2024
- Build an LLM RAG Chatbot With LangChain
- The Python return Statement: Usage and Best Practices
Courses Contributed to by Brenda:
- Starting With DuckDB and Python
- Python Project: Build a Word Count Command-Line App
- 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
- Programming Sockets in Python
- 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
- 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