Como converter string para boolean em Python

Neste artigo você vai aprender a como converter string para boolean em Python, de uma forma simples e eficaz, para usar em seus códigos!

converter string para boolean capa

Fala programador(a), beleza? Bora aprender mais sobre strings e booleans!

Não temos uma forma direta de converter uma string para boolean em Python

Há a função bool, que faz algo parecido com isso mas não exatamente o que queremos

Por exemplo:

print(bool("True")) # True

print(bool("False")) # True

print(bool("")) # False

Se esta função nativa não nos ajuda, como podemos resolver o problema de conversão?

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

É simples, vamos utilizar comparações com o valor que estamos buscando

Ou seja, para verificar se algo é o boolean True com uma string, fazemos assim:

a = "True"

if(a == "True"):
  print("é True")

Então podemos comparar algo com “True” ou “False”, sempre entre aspas e com a primeira letra maiúscula

As aspas por que estamos comparando strings, e a letra maiúscula se deve a convenção do Python ser desta maneira para os booleanos

E assim conseguimos converter de maneira indireta uma string em boolean!

Conclusão

Neste artigo você aprendeu a como converter string para boolean em Python

Utilizamos a estrutura condicional if, para comparar os valores como o valor final de booleano que estamos procurando

Então o ==, que verifica a igualdade, foi empregado no nosso if

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!

Por que bool("False") retorna True?

Aqui mora a pegadinha que confunde todo mundo

O bool não olha o conteúdo da string, ele olha se ela está VAZIA ou não

Qualquer string com pelo menos um caractere é considerada verdadeira, mesmo que dentro dela esteja escrito "False"

Por isso bool("False") dá True e só bool("") dá False

Sacou? é por isso que a gente não pode confiar no bool direto pra essa conversão

Função para converter string em boolean tratando maiúsculas e espaços:

Comparar direto com "True" funciona, mas quebra fácil

Se vier "true" minúsculo, ou " True " com espaço, ou "TRUE" gritando, a comparação falha

Pra deixar robusto, bora montar uma função que normaliza a string antes de comparar

def str_para_bool(valor): return valor.strip().lower() in ("true", "1", "sim", "verdadeiro")

print(str_para_bool("True")) # True print(str_para_bool(" false ")) # False print(str_para_bool("SIM")) # True print(str_para_bool("0")) # False

O strip() tira os espaços das pontas e o lower() joga tudo pra minúsculo

Assim tanto faz o usuário digitar "True", "true" ou "TRUE", o resultado é o mesmo

muito mais seguro pra usar com entrada de formulário ou arquivo de configuração

E para converter "1" e "0" em boolean?

Muita string de boolean não vem como texto, vem como número disfarçado

Banco de dados, checkbox de formulário e API costumam mandar "1" pra verdadeiro e "0" pra falso

A função de cima já dá conta do "1", mas se você quer tratar SÓ o caso numérico, dá pra fazer assim:

valor = "1" resultado = valor == "1" print(resultado) # True

Comparou com "1" entre aspas por que ainda é string, não é o número 1

Se você tentar bool("0") de novo cai na armadilha do começo e vem True, então compare o valor em vez de confiar no bool

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