In Python, what is the most elegant way to check whether a string is empty?
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!")