Comment puis-je faire un:
if str(variable) == [contains text]:
état?
(ou quelque chose, parce que je suis à peu près sûr que ce que je viens d'écrire est complètement faux)
J'essaie en quelque sorte de vérifier si un random.choice
de ma liste est ["",]
(vierge) ou contient ["text",]
.
Vous pouvez simplement comparer votre chaîne à la chaîne vide:
if variable != "":
etc.
Mais vous pouvez abréger cela comme suit:
if variable:
etc.
Explanation: Une if
fonctionne en calculant une valeur pour l'expression logique que vous lui donnez: True
ou False
. Si vous utilisez simplement un nom de variable (ou une chaîne littérale telle que "hello") au lieu d'un test logique, la règle est la suivante: Une chaîne vide compte pour False, toutes les autres chaînes comptent pour True. Les listes vides et le nombre zéro sont également considérés comme faux, et la plupart des autres choses sont considérées comme vraies.
La méthode "Pythonic" pour vérifier si une chaîne est vide est la suivante:
import random
variable = random.choice(l)
if variable:
# got a non-empty string
else:
# got an empty string
Les chaînes vides sont False par défaut:
>>> if not "":
... print("empty")
...
empty
Il suffit de dire if s
ou if not s
. Un péché
s = ''
if not s:
print 'not', s
Donc, dans votre exemple spécifique, si je comprends bien ...
>>> 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
element = random.choice(myList)
if element:
# element contains text
else:
# element is empty ''
Pour Python 3, vous pouvez utiliser bool ()
>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True
Comment puis-je créer une condition:
if str(variable) == [contains text]:
?
Le moyen le plus direct est peut-être:
if str(variable) != '':
# ...
Notez que les solutions if not ...
testent la condition inverse .
Quelque temps nous avons plus d'espaces entre les guillemets, alors utilisez cette approche
a = " "
>>> bool(a)
True
>>> bool(a.strip())
False
if not a.strip():
print("String is empty")
else:
print("String is not empty")
string = "TEST"
try:
if str(string):
print "good string"
except NameError:
print "bad string"