Is an Empty String Considered "None" in Python?

In Python, both None and an empty string ('') are not the same, even though they're both falsy values in a boolean context:

# '' and `None` are not equivalent
print('' == None) # False

# in a boolean context, '' and `None` are falsy
print(bool('') == bool(None)) # True

None is a special constant in Python that represents the absence of a value. It is often used to signify that a variable or a function should not have a value or that a particular operation did not return a meaningful result.

An empty string (''), on the other hand, is a string that contains no characters. It is a valid string object, but it is not the same as None.

Here's a simple example to illustrate the difference:

def is_none(var):
  return var is None

print(is_none('')) # False
print(is_none("")) # False

print(is_none(None)) # True

In this example, you can see that the variable with the empty string does not equal to None. The inverse is also true, as evident in the following example:

def is_empty_str(var):
  return var == ''

print(is_empty_str(None)) # False

print(is_empty_str('')) # True
print(is_empty_str("")) # True

This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.