web-dev-qa-db-de.com

Wie prüfe ich, ob eine str (Variable) leer ist oder nicht?

Wie mache ich ein:

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

bedingung? 

(oder etwas, weil ich ziemlich sicher bin, dass das, was ich gerade geschrieben habe, völlig falsch ist)

Ich versuche zu prüfen, ob ein random.choice aus meiner Liste ["",] (leer) ist oder ["text",] enthält.

51
user1275670

Sie können Ihren String einfach mit dem leeren String vergleichen:

if variable != "":
    etc.

Sie können dies jedoch wie folgt abkürzen:

if variable:
    etc.

Erläuterung: Ein if berechnet tatsächlich einen Wert für den von Ihnen angegebenen logischen Ausdruck: True oder False. Wenn Sie statt eines logischen Tests einfach einen Variablennamen (oder eine Literalzeichenfolge wie "Hallo") verwenden, lautet die Regel: Eine leere Zeichenfolge gilt als "False", alle anderen Zeichenfolgen als "Wahr". Leere Listen und die Zahl Null zählen ebenfalls als falsch, und die meisten anderen Dinge gelten als wahr.

101
alexis

Die "Pythonic" -Methode, um zu überprüfen, ob eine Zeichenfolge leer ist, lautet:

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

Leere Zeichenfolgen sind standardmäßig falsch:

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

Sagen Sie einfach if s oder if not s. Wie in

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

Also in Ihrem speziellen Beispiel, wenn ich es richtig verstehe ...

>>> 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
6
senderle
element = random.choice(myList)
if element:
    # element contains text
else:
    # element is empty ''
4
eumiro

Für Python 3 können Sie bool () verwenden.

>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True
3
Thai Tran

Wie mache ich eine: if str(variable) == [contains text]:-Bedingung?

Der direkteste Weg ist vielleicht:

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

Beachten Sie, dass die if not ...-Lösungen die Bedingung opposed testen.

2
NPE

Einige Zeit haben wir mehr Leerzeichen zwischen Anführungszeichen, dann verwenden Sie diesen Ansatz

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

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

wenn die Variable Text enthält, dann:

len(variable) != 0

davon nicht

len(variable) == 0

0
CESCO
string = "TEST"
try:
  if str(string):
     print "good string"
except NameError:
     print "bad string"
0
Cornea Valentin