Wie mache ich ein:
if str(variable) == [contains text]:
Bedingung?
(oder so, weil ich mir ziemlich sicher bin, dass das, was ich gerade geschrieben habe, völlig falsch ist)
Ich versuche zu überprüfen, ob a random.choice
aus meiner Liste ["",]
(leer) ist oder enthält ["text",]
.
python
string
conditional-statements
user1275670
quelle
quelle
if str(variable) == "my text":
?Antworten:
Sie können Ihre Zeichenfolge einfach mit der leeren Zeichenfolge vergleichen:
if variable != "": etc.
Aber Sie können das wie folgt abkürzen:
if variable: etc.
Erläuterung: A
if
berechnet tatsächlich einen Wert für den logischen Ausdruck, den Sie ihm geben:True
oderFalse
. Wenn Sie anstelle eines logischen Tests einfach einen Variablennamen (oder eine Literalzeichenfolge wie "Hallo") verwenden, lautet die Regel: Eine leere Zeichenfolge zählt als False, alle anderen Zeichenfolgen gelten als True. Leere Listen und die Zahl Null gelten ebenfalls als falsch, und die meisten anderen Dinge gelten als wahr.quelle
== True
Teil auch im Warcraft-Editor weglassen.Die "Pythonic" -Methode, um zu überprüfen, ob eine Zeichenfolge leer ist, ist:
import random variable = random.choice(l) if variable: # got a non-empty string else: # got an empty string
quelle
Leere Zeichenfolgen sind standardmäßig falsch:
>>> if not "": ... print("empty") ... empty
quelle
Sag einfach
if s
oderif not s
. Wie ins = '' 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
quelle
''
Auswertungen zuFalse
, also wenn Sie erhalten möchten,True
wanns
eine leere Zeichenfolge ist, sagen Sieif not s
.Für Python 3 können Sie bool () verwenden
>>> bool(None) False >>> bool("") False >>> bool("a") True >>> bool("ab") True >>> bool("9") True
quelle
bool(0)
kehrt aber zurückFalse
bool(0)
RückkehrFalse
ist für mich zu erwarten . Warum sollte es nicht?Manchmal 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")
quelle
element = random.choice(myList) if element: # element contains text else: # element is empty ''
quelle
Der vielleicht direkteste Weg ist:
if str(variable) != '': # ...
Beachten Sie, dass die
if not ...
Lösungen die entgegengesetzte Bedingung testen .quelle
Wenn die Variable Text enthält, dann:
len(variable) != 0
davon nicht
len(variable) == 0
quelle
Verwenden Sie " nicht " in if-else
x = input() if not x: print("Value is not entered") else: print("Value is entered")
quelle
string = "TEST" try: if str(string): print "good string" except NameError: print "bad string"
quelle