Python - Check if a string is Empty or Not

📋 Table Of Content
In this post, we will see different ways to check if a string is empty or not in Python.
In python, strings are immutable, which means we cannot make any changes to them once we have defined them. However, we can create a new string from the existing one in python.
What is an Empty String?
An empty string is a string with zero length, which means no characters, spaces, or white space.
If a string has only a space (' '
), it will look like an empty string, but it is a non-zero length string. So if we use the len()
function on it, it will be considered a non-empty string.
How to check for empty string in Python?
In Python, there are different ways to check if a string is empty using:
- The len() function
- The len() and strip() method
- The not operator
- not and strip() method
- not and isspace() method
Let's see each method with examples.
Check for empty string using len() function
The len()
function returns the number of items (length) in a string in python. If the string is empty it will return us 0
.
Example:
str1 = ''
str2 = ' '
print(len(str1))
# return: 0 (empty string)
print(len(str2))
# return: 1 (non-empty string)
As you can see, even though both the string (str1 and str2) looks empty, the str1 returns the length as 0
and is considered an empty string.
And in str2, the space(' '
) is considered as a character and so we get the length as 1
.
So how make the len() function ignore the spaces and whitespaces?
Well for that we have to trim those white spaces from the string first and then check the length of it using len()
.
Using len() and strip() to check for empty string
The strip()
remove the leading and trailing spaces or whitespaces from the given string.
Example:
str2 = ' '
if (len(str2.strip()) == 0):
print('String is empty')
else:
print('the string is not empty')
Output:
String is empty
Here, first, we have removed the spaces from str2 using strip()
function and then checked it's length using the len()
function.
Since all the spaces were trimmed by strip()
so we get the length of the string as 0
(zero). And thus we get the "String is empty" in our console.
not
operator to check for empty strings in Python
Using The not
operator is a logical operator in Python, that will return True
, if the expression is False. and False
if the expression is True.
Learn more about not operator here
Example:
x = 1
print(not x==3)
#result: True
print(not x==1)
#result: False
The string is evaluated to True
or False
in a Boolean context, if the given string is empty or not.
The not
operator is used with the if
statement in a program.
We can use the not
operator along with the if
statement to check if a string is empty or not in python
Example:
str1 = ''
str2 = ' '
#str1 - with no space in the string
if (not str1):
print('String is empty')
else:
print('The string is not empty')
#result: String is empty
#str2 - with space in the string
if (not str2):
print('String is empty')
else:
print('The string is not empty')
#result: String is not empty
The str1
have no spaces in it, so the string is considered an empty string. And on the other hand str2
with the spaces inside it, returned False, and it is considered as not empty.
Now since the string with spaces is not considered an empty string, the workaround to it would be using the strip()
or the isspace()
function.
not
operator with strip()
method
Using Since we don't get the correct results if the string contains spaces or whitespaces, we have to use the not
operator along with the strip()
method.
The strip()
method will remove the spaces from the string, and then we can use the not
operator on it with the if else
statement.
Example:
str2 = ' '
if (not str2.strip()):
print('String is empty')
else:
print('The string is not empty')
Output:
String is empty
not
operator with the isspace()
method.
Using The isspace()
method returns True
if the whole string is made of whitespaces else it returns False
.
Example:
str1 = ' '
str2 = ' abc '
str3 = ''
print(str1.isspace())
print(str2.isspace())
print(str3.isspace())
Output:
True
False
False
As you can see, it shows True
only if the whole string is made of whitespace. If the string contains whitespaces along with other characters, then it will return False
.
A zero-length string is also considered as False
in isspace()
method. i.e "".isspace() = False
Now we can use the not
operator with the isspace()
method to check if a string is empty in python.
Example:
str2 = ' '
if (str2 and not str2.isspace()):
print('String is not empty')
else:
print('The string is empty')
Output:
The string is empty
Let's understand the above expression (str2 and not str2.isspace()
) with a table:
str2 | not str2.isspace() | If() condtion | Result | |
---|---|---|---|---|
'Â Â Â ' | True | False | False | Empty string |
'' | False | True | False | Empty String |
' abc ' | True | True | True | Not Empty |
The isspace()
method is better then strip()
method because it takes less computation power and is faster if dealing with strings with lots of whitespaces.
And the string.strip()
method allocates a new string which is a waste whereas string.isspace()
doesn't.
Conclusion: So in this post, we have learned what is an empty string, how to use the not
operator and len()
method to check for empty strings in Python and how we can solve the issues or errors we get with non-zero length strings made with whitespaces using strip()
and isspace()
method.