Como verificar se uma string está vazia em Python

Neste artigo você vai aprender a como verificar se uma string está vazia em Python, utilizando recursos da linguagem e de forma simples

Resposta rápida: a forma recomendada de verificar se uma string está vazia em Python é usar a falsidade dela, com if not nome:

nome = ""

if not nome: print("A variável nome não tem valor algum")

Funciona porque a string vazia tem comprimento zero e, pela documentação, um objeto com __len__() retornando zero é avaliado como falso

Também dá pra comparar direto com if nome == "": e o resultado é o mesmo nesse caso

Já o PEP 8 recomenda testar sequências vazias pela falsidade e marca if len(seq): e if not len(seq): como formas erradas

E atenção: string com espaços (" ") não é vazia, pra esse caso use if not nome.strip():

verificar se uma string está vazia em Python capa

Conteúdo também disponível em vídeo:

Fala programador, beleza? Bora aprender mais sobre strings e Python!

Podemos utilizar uma checagem if para resolver este problema e em conjunto do operador not

E então verificar a string alvo, teremos como retorno um booleano

Se a string tiver algum dado será retornado True, caso não teremos um False

Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Veja um exemplo prático:

nome = ""

if not nome:
    print("A variável nome não tem valor algum")

Neste caso teremos a mensagem do if sendo exibida, pois a variável nome não possui valor

Então a string está vazia, e este código resolve o nosso problema completamente

Outra abordagem que podemos ter é verificar se o valor está vazio com o operador de comparação

Utilizando os dois iguais, que também teremos a mesma resposta

Veja um exemplo prático:

nome = ""

if nome == "":
    print("A variável nome não tem valor algum")

Teremos o mesmo resultado da outra opção, então você pode escolher qual usar no seu programa

Conclusão

Neste artigo aprendemos a como verificar se uma string está vazia em Python

Utilizamos duas abordagens, uma com if not, que nos retorna um booleano se a string tem algum valor

E a outra comparando com uma string vazia, que também retorna um booleano

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

O que o PEP 8 recomenda?

Os dois jeitos que vimos acima funcionam, mas o guia de estilo oficial do Python tem uma preferência clara

O PEP 8 diz que, para sequências (strings, listas, tuplas), você deve usar o fato de que sequências vazias são falsas

Ou seja: o if not nome: é o jeito idiomático, o que a comunidade espera ler no teu código

E ele vai além: marca if len(seq): e if not len(seq): como formas erradas de escrever essa checagem

Se liga que isso é estilo, não é erro de sintaxe: o len(nome) == 0 roda numa boa, só não é o caminho recomendado

Por que a string vazia é falsa?

Não é mágica, é regra da linguagem

A documentação diz que todo objeto é considerado verdadeiro por padrão, a menos que a classe dele defina __bool__() retornando False ou __len__() retornando zero

A string vazia tem comprimento zero, então cai no segundo caso e vira falsa dentro do if

Sacou? O not só inverte esse falso pra true e entra no bloco 😀

E se a string tiver só espaços?

Esse é o caso que pega muita gente 🙂

Uma string com " " dentro NÃO está vazia, ela tem conteúdo (espaço também é caractere)

Então o if not nome: simplesmente não entra no if

A saída aqui é limpar as pontas antes de testar, com o strip()

nome = " "

if not nome.strip(): print("A variável nome não tem valor algum")

O strip() sem argumento devolve uma cópia da string com os espaços do início e do fim removidos (o exemplo da própria documentação é ‘ spacious ‘.strip() virando ‘spacious’)

Sobrou nada depois da limpeza? Então só tinha espaço ali, e o not entra no if

Tem ainda o isspace(), que responde uma pergunta parecida, mas não igual:

print(" ".isspace()) print("".isspace())

Tome cuidado! O isspace() retorna True só quando a string contém apenas caracteres de espaço E não é vazia

Pra string vazia ele devolve False, ou seja, sozinho ele não serve pra detectar string vazia

Use os dois juntinhos e tu cobre os dois cenários: vazia de verdade e vazia "de mentirinha"

Isso muda com a versão do Python?

Os exemplos daqui não mudam: a regra de que a string vazia é falsa em contexto booleano está na documentação da versão atual da linguagem

Só pra tu se situar no calendário: a série de recursos atual é a 3.14, lançada em 7 de outubro de 2025, e a versão estável mais recente é a 3.14.7, publicada em 5 de agosto de 2026 junto com a 3.13.15

A 3.15 ainda não é final, está em release candidate: a 3.15.0rc1 saiu em 4 de agosto de 2026, e o cronograma dela está definido no PEP 790, com ciclo de desenvolvimento de 17 meses e cadência anual entre versões de recursos

E se tu roda uma série mais antiga, tranquilo: em 12 de agosto de 2026 ainda saíram as manutenções 3.12.14, 3.11.16 e 3.10.21

Por falar em novidade de string, a 3.14 trouxe os template string literals (as t-strings), além da avaliação adiada de anotações e do suporte a subinterpretadores na biblioteca padrão

Eu gravei esse teste em vídeo enquanto escrevia o post, e o detalhe que mais confunde quem está começando apareceu na hora de rodar

Criei uma pastinha, um arquivo app.py e comecei com nome = "Matheus", já com o if not nome: e um print dentro

Rodei o python app.py e não imprimiu nada

Parece que deu errado, né? Não deu, é justamente o esperado: com conteúdo na variável a string é verdadeira, o not vira falso e o if não entra

Aí eu apaguei o conteúdo do nome, deixei a string vazia, rodei de novo e a mensagem apareceu

Depois repeti a mesma brincadeira com o if nome == "": e o comportamento foi igualzinho: com valor na variável, nenhum dos dois ifs executa

Dica de bastidor: quando o teu programa "não imprime nada", roda ele nas duas situações (com valor e sem valor) antes de sair caçando erro no código, na maioria das vezes ele está certo e o teste é que estava incompleto 😀

Perguntas frequentes

Como verificar se uma string está vazia em Python?

Use if not nome:

A string vazia é avaliada como falsa, então o not inverte e o bloco do if executa

Se a string tiver qualquer conteúdo, o if não entra

Qual é a forma recomendada pelo PEP 8?

O PEP 8 diz que, para sequências (strings, listas, tuplas), você deve usar o fato de que sequências vazias são falsas

Então if not seq: e if seq: são as formas corretas de acordo com o guia de estilo

Posso usar len(nome) == 0 pra checar string vazia?

Funciona, mas o PEP 8 marca if len(seq): e if not len(seq): como errado do ponto de vista de estilo

O caminho idiomático é o if not nome:

E se a string tiver só espaços em branco?

Ela não está vazia, porque espaço também é caractere

Limpe as pontas antes de testar: if not nome.strip():

O strip() sem argumento remove os espaços do início e do fim da string

O isspace() serve pra detectar string vazia?

Não sozinho

O str.isspace() retorna True apenas se a string contiver só caracteres de espaço E não for vazia

Pra string vazia ele devolve False, então ele serve pro caso "só espaços", não pro caso "nada dentro"

if not nome e nome == "" dão o mesmo resultado?

Pra uma string vazia, sim: os dois entram no if

A diferença é de estilo, e o PEP 8 puxa pro lado da falsidade, ou seja, o if not nome:

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares