How to check whether a str(variable) is empty or not?

PythonStringConditional Statements

Python Problem Overview


How do I make a:

if str(variable) == [contains text]:

condition?

(or something, because I am pretty sure that what I just wrote is completely wrong)

I am sort of trying to check if a random.choice from my list is ["",] (blank) or contains ["text",].

Python Solutions


Solution 1 - Python

You could just compare your string to the empty string:

if variable != "":
    etc.

But you can abbreviate that as follows:

if variable:
    etc.

Explanation: An if actually works by computing a value for the logical expression you give it: True or False. If you simply use a variable name (or a literal string like "hello") instead of a logical test, the rule is: An empty string counts as False, all other strings count as True. Empty lists and the number zero also count as false, and most other things count as true.

Solution 2 - Python

The "Pythonic" way to check if a string is empty is:

import random
variable = random.choice(l)
if variable:
    # got a non-empty string
else:
    # got an empty string

Solution 3 - Python

Just say if s or if not s. As in

s = ''
if not s:
    print 'not', s

So in your specific example, if I understand it correctly...

>>> import random
>>> l = ['', 'foo', '', 'bar']
>>> def default_str(l):
...     s = random.choice(l)
...     if not s:
...         print 'default'
...     else:
...         print s
... 
>>> default_str(l)
default
>>> default_str(l)
default
>>> default_str(l)
bar
>>> default_str(l)
default

Solution 4 - Python

Empty strings are False by default:

>>> if not "":
...     print("empty")
...
empty

Solution 5 - Python

For python 3, you can use bool()

>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True

Solution 6 - Python

Some time we have more spaces in between quotes, then use this approach

a = "   "
>>> bool(a)
True
>>> bool(a.strip())
False

if not a.strip():
    print("String is empty")
else:
    print("String is not empty")

Solution 7 - Python

element = random.choice(myList)
if element:
    # element contains text
else:
    # element is empty ''

Solution 8 - Python

> How do i make an: if str(variable) == [contains text]: condition?

Perhaps the most direct way is:

if str(variable) != '':
  # ...

Note that the if not ... solutions test the opposite condition.

Solution 9 - Python

if the variable contains text then:

len(variable) != 0

of it does not

len(variable) == 0

Solution 10 - Python

use "not" in if-else

x = input()

if not x:
   print("Value is not entered")
else:
   print("Value is entered")

Solution 11 - Python

{
test_str1 = "" 
test_str2 = "  "
  
# checking if string is empty 
print ("The zero length string without spaces is empty ? : ", end = "") 
if(len(test_str1) == 0): 
    print ("Yes") 
else : 
    print ("No") 
  
# prints No  
print ("The zero length string with just spaces is empty ? : ", end = "") 
if(len(test_str2) == 0): 
    print ("Yes") 
else : 
    print ("No") 
}

Solution 12 - Python

string = "TEST"
try:
  if str(string):
     print "good string"
except NameError:
     print "bad string"

Solution 13 - Python

Python strings are immutable and hence have more complex handling when talking about its operations. Note that a string with spaces is actually an empty string but has a non-zero size. Let’s see two different methods of checking if string is empty or not: Method #1 : Using Len() Using Len() is the most generic method to check for zero-length string. Even though it ignores the fact that a string with just spaces also should be practically considered as an empty string even its non-zero.

Method #2 : Using not

Not operator can also perform the task similar to Len(), and checks for 0 length string, but same as the above, it considers the string with just spaces also to be non-empty, which should not practically be true.

Good Luck!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1275670View Question on Stackoverflow
Solution 1 - PythonalexisView Answer on Stackoverflow
Solution 2 - PythonDaniel LubarovView Answer on Stackoverflow
Solution 3 - PythonsenderleView Answer on Stackoverflow
Solution 4 - PythonbriceView Answer on Stackoverflow
Solution 5 - PythonThai TranView Answer on Stackoverflow
Solution 6 - Pythonkamran kausarView Answer on Stackoverflow
Solution 7 - PythoneumiroView Answer on Stackoverflow
Solution 8 - PythonNPEView Answer on Stackoverflow
Solution 9 - PythonCESCOView Answer on Stackoverflow
Solution 10 - PythonMegha ChovatiyaView Answer on Stackoverflow
Solution 11 - PythonVahid TalebiView Answer on Stackoverflow
Solution 12 - PythonCornea ValentinView Answer on Stackoverflow
Solution 13 - PythonVahid TalebiView Answer on Stackoverflow