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():

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 Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
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

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →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

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.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
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares

Como limitar números decimais em Python?
Neste artigo vamos aprender como limitar números decimais em Python, de uma forma simples com recursos da própria linguagem. Pra limitar casas decimais em Python […]

Como inverter uma string em Python
Neste artigo você vai aprender a como inverter uma string em Python, de uma maneira simples para você utilizar em seus programas Conteúdo também disponível […]
Como programar Python [dicas e códigos iniciantes aqui]
Python é uma linguagem de programação muito popular e uma de alto nível utilizada em diferentes tipos de aplicações, como para o desenvolvimento web, em Machine […]
