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 — verdadeiro
  • False — 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:

  1. A pessoa tem 18 anos ou mais?
  2. 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:

  1. Ter 18 anos ou mais;
  2. 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 not sempre 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 → E
  • or → OU
  • not → 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.