Come controllare se la stringa è vuota?

Python ha qualcosa come una variabile stringa vuota dove si può fare:

if myString == string.empty:

Indipendentemente da ciò, qual è il modo più elegante per controllare i valori delle stringhe vuote? Trovo che codificare duramente "" ogni volta per controllare una stringa vuota non sia così buono.

Soluzione

Le stringhe vuote sono "falsy", il che significa che sono considerate false in un contesto booleano, quindi potete semplicemente fare così:

if not myString:

Questo è il modo preferito se sapete che la vostra variabile è una stringa. Se la vostra variabile potrebbe anche essere qualche altro tipo allora dovreste usare myString == "". Si veda la documentazione su Truth Value Testing per altri valori che sono falsi in contesti booleani.

Commentari (13)

Da PEP 8, nella sezione "Programming Recommendations":

Per le sequenze (stringhe, liste, tuple), usate il fatto che le sequenze vuote sono false.

Quindi dovreste usare:

if not some_string:

oppure:

if some_string:

Solo per chiarire, le sequenze sono valutate a False o True in un contesto booleano se sono vuote o no. Sono non uguali a False o True.

Commentari (2)

Il modo più elegante sarebbe probabilmente quello di controllare semplicemente se è vero o falso, per esempio:

if not my_string:

Tuttavia, potresti voler togliere lo spazio bianco perché:

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

Probabilmente dovreste essere un po' più espliciti in questo, comunque, a meno che non sappiate per certo che questa stringa ha passato qualche tipo di validazione ed è una stringa che può essere testata in questo modo.

Commentari (0)