Como verificar se o fio está vazio?

O Python tem algo como uma variável de string vazia onde você pode fazer:

if myString == string.empty:

Independentemente disso, qual'é a forma mais elegante de verificar valores de cordas vazias? Eu acho que a codificação dura "" toda vez que verificar uma string vazia não é tão boa.

Solução

Cordas vazias são "falsificadas" o que significa que são consideradas falsas num contexto booleano, então você pode simplesmente fazer isso:

if not myString:

Esta é a forma preferida se você souber que sua variável é uma string. Se sua variável também pode ser algum outro tipo, então você deve utilizar myString == "". Veja a documentação em Truth Value Testing para outros valores que são falsos em contextos booleanos.

Comentários (13)

De PEP 8, na seção "Recomendações de Programação":

Para sequências, (cordas, listas, tuplos), use o facto de que as sequências vazias são falsas.

Por isso, devias usar:

if not some_string:

ou..:

if some_string:

Apenas para esclarecer, as seqüências são avaliadas para False ou True em um contexto booleano, se estiverem vazias ou não. Elas são **não são iguais*** a Falso ou Verdadeiro.

Comentários (2)

A maneira mais elegante provavelmente seria simplesmente verificar se é verdadeiro ou falso, por exemplo:

if not my_string:

No entanto, você pode querer tirar o espaço branco porque:

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

Você provavelmente deveria ser um pouco mais explícito nisso, a menos que você saiba com certeza que essa string passou em algum tipo de validação e é uma string que pode ser testada dessa forma.

Comentários (0)