如何检查 str (变量)是否为空?

我该怎么做:

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

情况?

(或者别的什么,因为我非常确定我刚才写的东西是完全错误的)

我正在尝试检查从我的列表中的 random.choice["",](空白)还是包含 ["text",]

520297 次浏览

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

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.

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

Empty strings are False by default:

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

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.

if the variable contains text then:

len(variable) != 0

of it does not

len(variable) == 0

For python 3, you can use bool()

>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True
string = "TEST"
try:
if str(string):
print "good string"
except NameError:
print "bad string"

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")

use "not" in if-else

x = input()


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

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!

{
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")
}
#empty variable
myvar = ""


#check if variable is empty
if not myvar:
print("variable is empty") # variable is empty