Check if a string is empty in Python

David Y.
—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!")
- Sentry BlogPython Performance Testing: A Comprehensive Guide (opens in a new tab)
- Syntax.fmListen to the Syntax Podcast (opens in a new tab)
- Sentry BlogLogging in Python: A Developer’s Guide (opens in a new tab)
- CodecovPython - Codecov (opens in a new tab)
- Listen to the Syntax Podcast (opens in a new tab)
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
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.
