Quando começamos a programar, rapidamente percebemos que um programa precisa tomar decisões. Ele precisa verificar se um usuário digitou a senha correta, confirmar se uma idade é suficiente para acessar determinado conteúdo ou decidir se deve continuar ou encerrar sua execução.
Essas decisões são feitas por meio de expressões lógicas. Em Python, os três principais operadores lógicos são:
-
and -
or -
not
Embora pareçam simples, eles estão presentes em praticamente qualquer sistema desenvolvido atualmente.
Neste artigo você aprenderá como cada um funciona, como o Python avalia condições e quais são os erros mais comuns cometidos por iniciantes.
O que é uma expressão lógica?
Uma expressão lógica é qualquer expressão que produz apenas dois resultados possíveis:
True
ou
False
Exemplo 1
10 > 5
Resultado:
True
Exemplo 2
10 < 5
Resultado:
False
Esses valores são chamados de booleanos.
O operador and
O operador and significa E.
Ele exige que todas as condições sejam verdadeiras.
Imagine duas portas de segurança. Somente quando as duas estiverem abertas você poderá entrar.
Tabela verdade do and
Condição 1 Condição 2 Resultado
True True True
True False False
False True False
False False False
Observe que basta uma condição ser falsa para todo o resultado se tornar falso.
Exemplo
idade = 20
tem_carteira = True
if idade >= 18 and tem_carteira:
print("Pode dirigir.")
As duas condições precisam ser verdadeiras.
Aplicando ao programa
Seu código utiliza exatamente essa lógica.
if entrada == 'ENTRAR' and senha_digitada == senha:
O Python verifica duas perguntas:
-
A pessoa digitou ENTRAR?
-
A senha está correta?
Somente quando ambas forem verdadeiras:
True and True
o programa entra no bloco de código.
O operador or
O operador or significa OU.
Basta uma condição ser verdadeira para que o resultado também seja verdadeiro.
Tabela verdade do or
True or True = True
True or False = True
False or True = True
False or False = False
Exemplo
if cor == "azul" or cor == "verde":
print("Cor permitida")
Mesmo que apenas uma comparação seja verdadeira, o bloco será executado.
O operador not
O operador not significa NÃO.
Sua função é inverter um valor lógico.
Exemplo
ativo = True
print(not ativo)
Resultado:
False
Outro exemplo
senha_correta = False
if not senha_correta:
print("Acesso negado")
Como o Python avalia o operador and
Uma característica muito importante é o curto-circuito (Short Circuit Evaluation).
Veja:
False and qualquer_coisa()
O Python nem executa qualquer_coisa().
Por que isso acontece?
Porque ele já sabe que o resultado nunca poderá ser verdadeiro.
Isso torna o código mais eficiente e evita executar operações desnecessárias.
Valores Falsy
Nem tudo em Python é apenas True ou False.
Existem valores que são considerados falsos automaticamente.
São eles:
0
0.0
''
[]
{}
()
False
None
Todos esses valores, quando utilizados em uma condição como:
if valor:
serão avaliados como False.
Valores Truthy
Qualquer valor diferente dos anteriores será considerado verdadeiro.
Exemplos
1
5
-10
"Python"
[1, 2, 3]
{"nome": "Tiago"}
True
Todos esses valores são avaliados como True.
Fluxograma do programa
Início
│
▼
Digita ENTRAR ou SAIR
│
▼
Entrada = ENTRAR?
│ │
Sim Não
│ │
▼ ▼
Digita senha Entrada = SAIR?
│ │
▼ │
Senha correta? │
│ │ │
Sim Não │
│ │ │
▼ ▼ ▼
Programa Senha Programa
iniciado incorreta encerrado
│
▼
Opção inválida
Código final
entrada = input("Entrar ou Sair: ").upper()
senha_digitada = input("Senha: ")
senha = "123456"
if entrada == "ENTRAR" and senha_digitada == senha:
print("Programa iniciado!")
elif entrada == "ENTRAR" and senha_digitada != senha:
print("Senha incorreta!")
elif entrada == "SAIR":
print("Programa encerrado!")
else:
print("Digite uma opção válida.")
Conclusão
Os operadores lógicos and, or e not formam a base da tomada de decisões em Python. Eles permitem combinar condições, criar regras de acesso e controlar o fluxo de execução de um programa de maneira clara e eficiente.
No exemplo desenvolvido, vimos como utilizar o and para exigir que o usuário informe tanto a opção ENTRAR quanto uma senha correta antes de permitir o acesso ao sistema. Também aprimoramos a experiência do usuário adicionando mensagens específicas para senha incorreta, encerramento do programa e opções inválidas.
Além disso, compreendemos como o Python interpreta valores booleanos, o conceito de curto-circuito (Short Circuit Evaluation) e a diferença entre valores truthy e falsy. Esses conceitos aparecem constantemente em aplicações reais, desde pequenos scripts até sistemas web e APIs.
Dominar esses operadores logo no início da jornada em Python facilita o aprendizado de estruturas mais avançadas, como laços de repetição, funções, tratamento de exceções e programação orientada a objetos. Quanto mais você praticar criando condições e analisando o fluxo do programa, mais natural será escrever códigos corretos, legíveis e eficientes.