Os operadores lógicos em Python são fundamentais para criar condições mais inteligentes e controlar o comportamento de um programa. Eles permitem combinar, inverter e avaliar diferentes condições para determinar qual caminho o código deve seguir.
Se você está começando a aprender Python, provavelmente já encontrou estruturas como if, elif, else e while. No início, entender como essas estruturas trabalham juntas pode parecer confuso.
Eu mesmo tive bastante dificuldade para entender isso quando comecei. Principalmente quando precisava combinar condições ou entender por que um while continuava executando ou finalmente parava.
Neste artigo, você vai entender os principais operadores lógicos do Python: and, or e not, além de aprender como utilizá-los em situações práticas.
Se você ainda está conhecendo a linguagem, também pode começar pelo artigo o que é Python, onde explico os conceitos básicos da linguagem.
O que são operadores lógicos em Python?
Operadores lógicos são utilizados para trabalhar com valores booleanos e combinar diferentes condições.
Um valor booleano pode assumir apenas dois estados:
True— verdadeiroFalse— falso
Por exemplo:
idade = 20
idade >= 18
Nesse caso, a expressão verifica se a idade é maior ou igual a 18.
O resultado será:
True
Os operadores lógicos permitem combinar esse tipo de condição para criar regras mais completas.
Por exemplo:
idade >= 18 and tem_documento
Nesse caso, estamos verificando duas condições:
- A pessoa tem 18 anos ou mais?
- A pessoa possui documento?
O resultado será True somente quando as duas condições forem verdadeiras.
Quais são os operadores lógicos do Python?
Os três principais operadores lógicos utilizados em Python são:
| Operador | Nome | Função |
|---|---|---|
and |
AND / E | Todas as condições precisam ser verdadeiras |
or |
OR / OU | Pelo menos uma condição precisa ser verdadeira |
not |
NOT / NÃO | Inverte o valor lógico |
Vamos entender cada um deles na prática.
Operador AND (and)
O operador and, que significa E, retorna True quando todas as condições envolvidas são verdadeiras.
Como funciona o AND?
Imagine a seguinte regra:
Uma pessoa pode entrar na festa se tiver ingresso E for maior de idade.
Temos duas condições:
tem_ingresso
maior_de_idade
Para permitir a entrada, as duas precisam ser verdadeiras.
| Tem ingresso | É maior de idade | Resultado |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Em Python:
tem_ingresso and maior_de_idade
Se:
tem_ingresso = True
maior_de_idade = True
teremos:
True and True
Resultado:
True
Exemplo com if
Podemos utilizar o operador and para tomar uma decisão:
idade = 20
tem_documento = True
if idade >= 18 and tem_documento:
print("Entrada permitida")
Nesse exemplo, a mensagem somente será exibida quando as duas condições forem satisfeitas.
Esse tipo de combinação aparece constantemente quando trabalhamos com estruturas condicionais. Se você ainda tem dificuldade para entender if, elif e else, recomendo também conferir o artigo sobre estruturas condicionais em Python.
Operador OR (or)
O operador or, que significa OU, retorna True quando pelo menos uma das condições é verdadeira.
Como funciona o OR?
Imagine a seguinte situação:
O cliente pode pagar com Pix OU cartão.
Não é necessário utilizar os dois métodos. Basta uma das opções estar disponível.
| Pix | Cartão | Resultado |
|---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Em Python:
pagamento_pix or pagamento_cartao
Se:
pagamento_pix = True
pagamento_cartao = False
teremos:
True or False
Resultado:
True
Exemplo com if
pagamento_pix = True
pagamento_cartao = False
if pagamento_pix or pagamento_cartao:
print("Pagamento disponível")
A condição será verdadeira se o pagamento por Pix ou cartão estiver disponível.
Operador NOT (not)
O operador not, que significa NÃO, possui uma função diferente dos anteriores: ele inverte o valor lógico.
Se o valor for True, o resultado será False.
Se o valor for False, o resultado será True.
| Valor | Resultado com not |
|---|---|
True |
False |
False |
True |
Exemplo
not True
Resultado:
False
Outro exemplo:
not False
Resultado:
True
Exemplo prático
Imagine uma variável chamada esta_logado:
esta_logado = True
Ao utilizar:
not esta_logado
teremos:
False
Isso acontece porque o operador not inverte o estado original.
Podemos utilizar isso em uma condição:
if not esta_logado:
print("Faça login para continuar")
Nesse caso, a mensagem será executada quando o usuário não estiver logado.
A dificuldade que tive para entender as condições em Python
Quando comecei a estudar Python, uma das coisas que mais me travou foi entender como as estruturas de decisão funcionavam.
No começo, eu conseguia entender um if isoladamente. O problema aparecia quando precisava combinar if, elif e else ou quando uma condição precisava ser utilizada dentro de um while.
Eu ficava tentando entender o código apenas pela sintaxe, mas percebi que o mais importante era acompanhar o fluxo de execução.
Por exemplo:
idade = 20
if idade >= 18:
print("Maior de idade")
else:
print("Menor de idade")
Depois comecei a perceber que os operadores lógicos permitiam criar regras mais completas:
idade >= 18 and tem_documento
Nesse caso, não estamos apenas verificando uma informação. Estamos dizendo que as duas condições precisam ser verdadeiras.
Foi justamente praticando situações assim que and, or e not começaram a fazer mais sentido.
O while também foi um ponto em que tive bastante dificuldade no início. A ideia de executar um bloco repetidamente enquanto uma condição fosse verdadeira parecia simples, mas acompanhar o momento em que a condição mudava e o laço finalmente terminava exigia bastante prática.
Se você está passando pela mesma dificuldade, vale a pena praticar com um problema pequeno e concreto. Eu também escrevi um exemplo criando um sistema de login simples usando while em Python, justamente para mostrar esse tipo de situação na prática.
Hoje vejo que essa dificuldade fazia parte do processo. Quando comecei a pensar no código como uma sequência de decisões — "o que o programa verifica?", "se for verdadeiro, o que acontece?", "e se for falso?" — ficou muito mais fácil entender a lógica.
Por isso, se você está começando agora e também está travando com if, elif, else ou while, não significa necessariamente que você não está aprendendo. Muitas vezes, o que falta é praticar o fluxo de execução com exemplos pequenos antes de tentar resolver problemas maiores.
Combinando operadores lógicos
Os operadores and, or e not também podem ser utilizados juntos.
Por exemplo:
idade >= 18 and tem_documento
Podemos criar condições ainda mais complexas:
idade >= 18 and (tem_documento or tem_passaporte)
Nesse caso, a pessoa precisa:
- Ter 18 anos ou mais;
- E possuir documento ou passaporte.
Os parênteses ajudam a deixar a lógica mais clara e controlar a ordem de avaliação.
Operadores lógicos com if, elif e else
Uma das aplicações mais importantes dos operadores lógicos está nas estruturas condicionais.
Podemos utilizar diferentes condições para fazer o programa tomar decisões:
idade = 20
tem_documento = True
if idade < 18:
print("Menor de idade")
elif idade >= 18 and tem_documento:
print("Entrada permitida")
else:
print("Documento necessário")
Observe que o and permite combinar duas verificações dentro do elif.
Esse tipo de estrutura é muito comum em programas que precisam analisar diferentes situações.
Se você ainda estiver começando nessa parte, vale estudar primeiro as estruturas condicionais em Python e depois voltar para os operadores lógicos.
Operadores lógicos dentro do while
Os operadores lógicos também podem ser utilizados em estruturas de repetição.
Por exemplo, podemos criar um programa que continua executando enquanto duas condições forem verdadeiras:
tentativas = 0
senha_correta = "1234"
while tentativas < 3 and senha_correta != "":
senha = input("Digite a senha: ")
tentativas += 1
if senha == senha_correta:
print("Login realizado!")
break
print("Fim do programa")
Esse tipo de exemplo ajuda a perceber que os operadores lógicos não servem apenas para o if. Eles também podem controlar a execução de um while.
No meu aprendizado, entender esse fluxo foi uma das partes que mais exigiu prática. O ponto principal é observar que o while continua executando enquanto a condição definida for verdadeira.
Se você quiser aprofundar essa parte, confira o exemplo completo de sistema de login com while em Python.
Operadores lógicos na prática
Considere as seguintes variáveis:
idade = 25
tem_documento = True
Podemos verificar:
idade >= 18 and tem_documento
Primeiro, avaliamos:
25 >= 18
Resultado:
True
Depois:
True and True
Resultado final:
True
Portanto, a condição é verdadeira.
Tabela-verdade dos operadores lógicos
Uma maneira muito utilizada para estudar lógica é através da tabela-verdade.
Tabela-verdade do AND
| A | B | A and B |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
A regra é simples:
No
and, todas as condições precisam ser verdadeiras.
Tabela-verdade do OR
| A | B | A or B |
|---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
A regra é:
No
or, basta uma condição ser verdadeira.
Tabela-verdade do NOT
| A | not A |
|---|---|
True |
False |
False |
True |
A regra é:
O
notsempre inverte o valor lógico.
Operadores lógicos e funções em Python
Conforme os programas começam a ficar maiores, é comum perceber que determinadas regras precisam ser reutilizadas em diferentes partes do código.
Nesse momento, podemos organizar nossa lógica utilizando funções.
Por exemplo:
def pode_entrar(idade, tem_documento):
return idade >= 18 and tem_documento
Agora podemos utilizar essa função:
resultado = pode_entrar(20, True)
print(resultado)
Resultado:
True
Se você está avançando nos estudos, vale conferir também os exemplos de funções em Python para entender melhor como transformar partes da lógica do programa em blocos reutilizáveis.
Resumo dos operadores lógicos em Python
Podemos resumir os três principais operadores em três regras:
AND (and)
Todas as condições precisam ser verdadeiras.
True and True
Resultado:
True
OR (or)
Pelo menos uma condição precisa ser verdadeira.
True or False
Resultado:
True
NOT (not)
Inverte o valor lógico.
not True
Resultado:
False
Exercício para praticar
Agora é hora de colocar os operadores lógicos em prática.
Crie um programa que receba a idade de uma pessoa e informe se ela pode entrar em um evento.
O programa deve considerar duas regras:
- a pessoa precisa ter 18 anos ou mais;
- a pessoa precisa apresentar um documento.
Utilize o operador and para combinar as duas condições.
Depois, tente modificar o programa para aceitar duas formas diferentes de identificação utilizando o operador or.
Por fim, tente utilizar not para verificar uma situação em que a pessoa não esteja autorizada a entrar.
Não se preocupe se o código não funcionar de primeira. Uma das partes mais importantes do aprendizado de programação é justamente testar, encontrar erros e entender por que eles aconteceram.
Conclusão
Os operadores lógicos em Python são uma parte essencial da programação. Eles permitem combinar condições, criar regras mais completas e controlar o fluxo de execução dos programas.
Os três principais operadores que você precisa dominar são:
and→ Eor→ OUnot→ NÃO
Mais importante do que decorar esses operadores é entender como o Python avalia cada condição.
No início, eu também tive dificuldade para entender if, elif, else e principalmente while. Com a prática, comecei a perceber que programação não é apenas escrever comandos, mas entender o caminho que o programa percorre a cada decisão.
Depois de compreender os operadores lógicos, o próximo passo é continuar praticando com estruturas condicionais, laços de repetição e funções.
Se você está seguindo essa sequência de aprendizado, recomendo continuar praticando com estruturas condicionais, avançar para while e sistemas simples e depois estudar funções em Python.