Check if a string is empty in Python

David Y.
jump to solution

The Problem

In Python, what is the most elegant way to check whether a string is empty?

The Solution

In Python, empty strings are considered equivalent to False for boolean operations. Therefore, we can use not to check whether a string is empty:

if not my_string:
    print("my_string is empty!")
else:
    print("my_string is not empty!")

Note that this will only work in contexts where we know for certain that my_string contains a string. The expression in our if statement above would also evaluate to True if my_string contained the boolean value False, or even an empty list. If we want to ensure that my_string is an empty string and not a different false-equivalent value, we should do the following:

if my_string == "":
    print("my_string is an empty string!")
else:
    print("my_string is not an empty string!")

A string containing only whitespace would not be considered empty by Python. If our code needs to consider " " and "" as equivalently empty strings, we can use string.strip with no arguments to remove whitespace before making the comparison.

if my_string.strip() == "":
    print("my_string is an empty string!")
else:
    print("my_string is not an empty string!")
Declare an array in Python
David Y.
Sort a dictionary by value in Python
David Y.
Print colored text to terminal with Python
David Y.
List files in a directory using Python
David Y.

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry