How to Check if a Variable is Not Empty in Python

I have found that “empty” variables are the leading cause of crashes. I remember once debugging a Python script that processed IRS tax forms. A single “None” value in a list of deductions caused the entire payroll run to fail.

Checking if a variable is not empty in Python is a fundamental skill that separates hobbyist coders from professional software engineers.

In this tutorial, I will share the exact methods I use every day to ensure my Python variables contain the data I expect.

What Does “Not Empty” Mean in Python?

In Python, the definition of “empty” changes depending on the data type you are working with.

For example, a string is empty if it is “”, but a list is empty if it contains no elements [].

Then there is the None type, which represents the total absence of a value. In a professional Python environment, you must account for all these possibilities.

Method 1: Use Python Truthiness (The Most Pythonic Way)

Python has a beautiful concept called “Truthiness.” This is the method I use 95% of the time because it is concise and efficient.

In Python, empty strings, empty lists, empty dictionaries, and the number zero are all considered “Falsy.” Everything else is “Truthy.”

# User input from a California DMV registration form
license_plate = "7XAB123"

# Checking if the string is not empty using truthiness
if license_plate:
    print(f"Processing registration for plate: {license_plate}")
else:
    print("Error: The license plate field cannot be empty.")

# Output: Processing registration for plate: 7XAB123

You can refer to the screenshot below to see the output.

python check if variable is none

When you place a variable directly after an if statement, Python evaluates its truth value.

If the string has even one character, the condition is true. I find this approach makes my Python scripts much cleaner and easier to read.

Method 2: Check specifically for ‘is not None’

Sometimes, a variable might be an empty string, and that’s perfectly fine for your logic. However, if the variable is None, your script might break.

I use this method when I’m pulling data from a SQL database used by a US healthcare provider. Often, a “Middle Name” field can be an empty string, but it shouldn’t be None.

# Patient data from a Boston hospital database
middle_name = ""

# Checking specifically that the variable is not None
if middle_name is not None:
    print("The variable exists in the database, even if it is a blank string.")
else:
    print("The record does not exist.")

# Output: The variable exists in the database, even if it is a blank string.

You can refer to the screenshot below to see the output.

python if not empty

Using is not None ensures that you are only checking for the existence of the object, not its contents.

Method 3: Use the len() Function for Collections

If you are working with Python lists or dictionaries, sometimes you want to be very explicit about the size of the data.

I use len() when I’m processing a list of shipping orders from a warehouse in New Jersey. If the list length is greater than zero, I know I have work to do.

# List of pending orders for a retail warehouse
pending_orders = ["Order_101", "Order_102", "Order_103"]

# Checking if the list is not empty using length
if len(pending_orders) > 0:
    print(f"There are {len(pending_orders)} orders ready for shipment.")
else:
    print("No orders to process today.")

# Output: There are 3 orders ready for shipment.

You can refer to the screenshot below to see the output.

python if variable not empty

While if pending_orders: (Method 1) also works, using len() is often preferred in team environments where clarity is prioritized over brevity.

Method 4: Checke for Whitespace-Only Strings

A common trap I see junior Python developers fall into is the “space” bug. A string containing only spaces ” ” is not empty according to Python truthiness.

If a user in a Chicago tech firm enters five spaces instead of their employee ID, your script might treat it as a valid ID.

# Employee ID input with accidental spaces
employee_id = "     "

# Using strip() to check if the string is not just whitespace
if employee_id.strip():
    print(f"Access granted for ID: {employee_id}")
else:
    print("Access denied: Invalid ID entered.")

# Output: Access denied: Invalid ID entered.

You can refer to the screenshot below to see the output.

python if variable is not empty

The strip() method removes all leading and trailing whitespace. If nothing is left, the string was effectively empty.

Method 5: Use any() for List Validation

What if you have a list of variables and you want to know if at least one of them is not empty? This is where the any() function in Python shines.

I used this recently for a financial dashboard that analyzed stock tickers from the New York Stock Exchange.

# Tickers provided by a user
user_input_tickers = ["AAPL", "", None, "TSLA"]

# Checking if at least one entry is not empty/None
if any(user_input_tickers):
    print("At least one valid ticker was found in the input.")
else:
    print("Please provide at least one stock ticker.")

Professional Tips for Python Variable Validation

Over the last decade, I have developed a few “golden rules” for checking variables in Python.

1. Know Your Default Values: If you are using a library like pandas or numpy, “empty” might mean NaN. Standard truthiness won’t help you there; you’ll need pd.notna().

2. Avoid ‘==’ for None: Always use if var is not None: instead of if var != None:. The is operator is faster and follows the official Python style guide (PEP 8).

3. Order of Operations: If you need to check multiple conditions, check for None first to avoid errors.

Python

# The safe way to check a variable
if my_var is not None and my_var != "":
    # Do something

Handle Variables in Different Python Scopes

Sometimes a variable might not even be defined yet. If you try to check a variable that doesn’t exist, Python will throw a NameError.

In my experience building complex Python automation for US marketing agencies, I often use a try-except block or check the locals() or globals() dictionaries to see if a variable name exists.

Python

# Checking if a variable name is even defined
if 'target_revenue' in locals():
    print("Variable exists.")
else:
    print("Variable is not defined yet.")

Compare Python Validation Methods

MethodBest ForPros
TruthinessStrings, Lists, DictsMost concise and Pythonic
is not NoneObjects, Database valuesAvoids issues with 0 or ""
len() > 0SequencesVery explicit for team projects
strip()User Input StringsCatches space-only entries
any()IterablesValidates multiple variables at once

Checking if a variable is not empty in Python is something you will do thousands of times in your career. While using truthiness is the standard approach, choosing the right method depends on the context of your data.

I have found that being explicit—especially when handling user data or database records—saves countless hours of debugging.

Take the time to understand the difference between an empty string and a None value. It is one of the most important lessons I’ve learned in my ten years of Python development.

You may also like to read:

51 Python Programs

51 PYTHON PROGRAMS PDF FREE

Download a FREE PDF (112 Pages) Containing 51 Useful Python Programs.

pyython developer roadmap

Aspiring to be a Python developer?

Download a FREE PDF on how to become a Python developer.

Let’s be friends

Be the first to know about sales and special discounts.