Blog

Postado em em 30 de janeiro de 2024

IF com Múltiplas Condições no Python – Não caia nesse erro!

Entenda como usar corretamente o IF com múltiplas condições no Python e evite cair em um resultado que você não espera!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

IF com Múltiplas Condições no Python – Não caia nesse erro!

Na aula de hoje eu quero te explicar como usar o IF com múltiplas condições no Python de forma correta e evitar cair em erros ou ter resultados inesperados em seu código.

Quando trabalhamos com condicionais no Python e queremos fazer comparações dentro dela para verificar as informações, precisamos fazer isso de forma correta. Uma sintaxe errada ou uma declaração incorreta podem levar a resultados que você não desejava.

Para esclarecer tudo sobre como usar o IF com múltiplas condições no Python, preparei esta aula com exemplos práticos para que você possa entender de vez como utilizá-lo corretamente em seus códigos. Então, faça o download do material disponível e vem comigo!

Entendendo o Erro – Resultados Inesperados

Para iniciarmos esta aula, observe o código abaixo e pense em qual dos resultados você espera que ele imprima na tela: “Acesso Liberado” ou “Acesso Negado”.

nome = "Lira"

if nome == "João" or "Paulo" or "Marcus":
    print("Acesso Liberado")
else:
    print("Acesso Negado")

Se executarmos este código, obteremos como resultado a mensagem “Acesso Liberado”.

Executando o código

Se você pensou que o resultado deveria ser “Acesso Negado”, não se preocupe; esse é um erro muito comum, e eu vou te explicar o porquê esse código não funciona como você estava esperando.

À primeira vista, parece que estamos comparando se a variável nome é igual a João, ou igual a Paulo ou igual a Marcus. No entanto, não é isso que está acontecendo.

Na prática, o código verifica se a variável nome é igual a João, ou se a string “Paulo” é verdadeira, ou se a string “Marcus” é verdadeira. É como se fosse escrito da seguinte forma:

nome = "Lira"

if (nome == "João") or "Paulo" or "Marcus":
    print("Acesso Liberado")
else:
    print("Acesso Negado")

Em Python, toda string não vazia retorna True em um contexto booleano. Dessa forma, as condições “Paulo” e “Marcus” sempre serão consideradas verdadeiras e passarão pela avaliação.

Por isso, obtemos como resultado a mensagem “Acesso Liberado”. Para ter a mensagem “Acesso Negado”, todas as condições precisariam ser falsas.

Por esse motivo, ao construir uma estrutura condicional em Python (e em outras linguagens de programação), precisamos ter cuidado com a forma como declaramos as condições a serem avaliadas dentro dela.

Entendendo as Condições no Python

As condições em Python são usadas para tomada de decisões.

Se a condição principal avaliada for verdadeira (True), o bloco de código associado ao if é executado. Caso contrário, ou seja, se a condição for falsa (False), o código passará para a próxima condição a ser avaliada, se houver. E, por fim, se nenhuma condição retornar verdadeira, o bloco de código associado ao else é executado.

Isso ocorre porque ao passarmos apenas um texto como condição, o Python sempre considerará como verdadeiro caso o texto esteja preenchido.

Então, no nosso código, é como se o Python interpretasse a avaliação dessa forma:

nome = "Lira"

if (nome == "João") or True or True:
    print("Acesso Liberado")
else:
    print("Acesso Negado")

Já quando uma variável é avaliada em uma condição e está vazia (texto vazio, lista vazia ou tenha o valor de None), ela é considerada False (falsa). Vamos verificar com esse segundo exemplo:

nome = ""

if nome:
    print("Nome preenchido")
else:
    print("Nome vazio")

Resultado com string vazia
nome = "abc"

if nome:
    print("Nome preenchido")
else:
    print("Nome vazio")
Resultado com string preenchida

Observe que no primeiro caso, quando a variável nome era um texto vazio, ela foi considerada false e executou o print dentro do else.

No segundo caso, com o texto preenchido, a variável foi considerada verdadeira e o código executou o print associado ao if.

Formas Corretas de Declarar as Condições

Para obter o resultado esperado, teríamos de declarar essas condições de outras formas. E temos algumas maneiras de fazer isso da forma correta.

A primeira delas, mas que acaba sendo redundante, seria repetindo a verificação individualmente para cada nome.

nome = "Lira"

if nome == "João" or nome == "Paulo" or nome == "Marcus":
    print("Acesso Liberado")
else:
    print("Acesso Negado")

Nesse caso, teremos como resposta a mensagem de “Acesso Negado”.

Resultado com declaração correta

Porém, uma forma mais concisa e otimizada de escrever e avaliar essas condições seria colocar os nomes dentro de uma lista e verificar se a variável nome está nessa lista.

nome = "Lira"

if nome in ["João", "Paulo", "Marcus"]:
    print("Acesso Liberado")
else:
    print("Acesso Negado")
Resultado com a declaração correta em listas

Conclusão – IF com Múltiplas Condições no Python – Não caia nesse erro!

Na aula de hoje, você aprendeu a usar o IF com múltiplas condições no Python de forma eficiente, evitando erros comuns que podem surgir.

Exploramos como o Python trata variáveis e textos preenchidos ou vazios, além de entender como as condições são avaliadas e como escrevê-las corretamente.

Agora, você está apto a criar expressões condicionais em Python de maneira clara e sem ambiguidades, garantindo que suas comparações sejam feitas de forma precisa.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador