web-dev-qa-db-fra.com

Comment vérifier si une str (variable) est vide ou non?

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",].

51
user1275670

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.

101
alexis

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
13
Daniel Lubarov

Les chaînes vides sont False par défaut:

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

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

Pour Python 3, vous pouvez utiliser bool ()

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

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 .

2
NPE

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")
1
kamran kausar
string = "TEST"
try:
  if str(string):
     print "good string"
except NameError:
     print "bad string"
0
Cornea Valentin