Learning Hub Logo

Sobre Diego Pinho

Professor especialista em tecnologia com mais de 10 anos de experiência. Autor de livros técnicos e criador de cursos que já impactaram milhares de estudantes.

Visite meu site principal →

Serviços

  • Área do Aluno
  • Consultoria Personalizada
  • Cursos Completos
  • Trabalhe Conosco

Redes Sociais

  • Youtube
  • TikTok
  • Instagram
  • LinkedIn

Links

  • Nosso Blog
  • Learning Hub
  • Cursos Online
  • Livros Publicados

Professor Diego Pinho

Educação, Tecnologia e IA © 2026

Python›Operadores lógicos

Operadores lógicos

Os operadores lógicos em Python

⚡1 min de leitura

Na lição anterior, vimos como comparar valores individuais usando os operadores de comparação. Aprendemos também que com eles podemos verificar se um número está entre dois valores com expressões como 1 < x < 10.

Nesse caso, duas comparações são feitas ao mesmo tempo: conferimos tanto se 1 < x e se x < 10. Se as duas comparações forem verdadeiras, o valor True era retornado:

1x = 5 2print(1 < x < 10) # 5 é maior que 1 E menor que 10? sim! 3 4# Saída: 5# True

Agora, vamos dar um passo além!

Os operadores lógicos

O Python permite combinar várias condições ao mesmo tempo e é aí que entram os operadores lógicos.

Esses operadores são usados para conectar expressões e trazem resultados em valores booleanos (True ou False). Eles nos ajudam a tomar decisões mais complexas, unindo comparações e expressões.

Em Python, temos três operadores lógicos:

OperadorDescriçãoExemplo
andRetorna True se todas as expressões forem verdadeirasx > 0 and x < 10
orRetorna True se pelo menos uma das expressões for verdadeirax < 5 or x > 10
notInverte o resultado lógico (troca True por False e vice-versa)not(x > 3 and x < 10)

Vamos ver cada um deles em ação.

O operador and

Representa o E lógico em português. Ele é usado quando queremos verificar se todas as expressões avaliadas são verdadeiras.

Por exemplo, se a primeira expressão é verdadeira E a segunda também é verdeira, recebemos True como resultado:

1x = 5 2y = 8 3 4print(x > 0 and y > 0) 5

Se qualquer uma das expressões for falsa, o resultado será False.

Uma situação da vida real que pode ajudar a visualizar é quando você quer acessar alguma conta online, como entrar no seu e-mail. Isso só é possível se duas condições forem verdadeiras: você digitou o endereço de e-mail correto E a senha correta.

1email_correto = True 2senha_correta = True 3 4print(email_correto and senha_correta) # ambas precisam ser verdadeiras 5 6

Se uma delas estiver errada, o acesso é negado.

1email_correto = True 2senha_correta = False 3 4print(email_correto and senha_correta) # ambas precisam ser verdadeiras 5 6

Uma maneira comum de visualizar todas as possíveis saídas para operadores lógicos é através do que chamamos de tabela‑verdade.

Para facilitar, vamos usar as mesmas variáveis que usamos acima na tabela para vermos se o usuário deveria conseguir acessar a conta (email_correto and senha_correta é True) ou não (email_correto and senha_correta é False):

email_corretosenha_corretaemail_correto and senha_correta
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

O operador or

Representa o OU lógico. Ele é usado quando queremos que pelo menos uma das condições seja verdadeira para que o resultado também seja True.

1x = 4 2 3print(x < 5 or x > 10) 4 5# Saída:

Aqui, x é menor que 5. Mesmo não sendo maior que 10, pelo menos uma das condições é verdadeira, então o resultado é True.

Mas se nenhuma das condições for verdadeira, o resultado muda para False:

1x = 6 2print(x < 5 or x > 10) 3 4# Saída: 5

Uma situação da vida real seria uma promoção de loja que oferece desconto se o cliente for estudante ou tiver um cupom de fidelidade. Basta uma dessas condições ser verdadeira para que o desconto seja aplicado:

1is_estudante = False 2tem_cupom = True 3 4print(is_estudante or tem_cupom) 5 6# Saída:

Veja a tabela‑verdade que mostra todos os resultados possíveis com o or:

is_estudantetem_cupomis_estudante or tem_cupom
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

O operador not

Representa a negação lógica. Ele inverte o valor de uma expressão:

  • o que é True vira False;
  • o que é False vira True.

Observe:

1x = 5 2comparacao = x > 3 # 5 é maior que 3, então é True. 3 4print(not comparacao) # mas aqui o not inverte o resultado! 5

Para deixar mais intuitivo, imagine um interruptor de lâmpada inteligente que acende somente quando o ambiente NÃO está claro:

1esta_claro = False 2acender_luz = not esta_claro 3 4print(acender_luz) 5 6# Saída:

Ou seja, se esta_claro for False, então acender_luz, que é o mesmo que not esta_claro, será True e a luz acende automaticamente. É como dizer: "Não está claro? Não. Então acenda a luz!"

Veja como isso se representa em uma tabela‑verdade:

esta_claronot esta_claro
TrueFalse
FalseTrue

Um ponto de atenção é que o and e or precisam de pelo menos duas expressões para funcionarem. Você compara se isso E/OU aquilo são verdadeiros ou falsos. No caso do not, ele atua sobre uma única expressão mesmo que essa expressão única tenha várias expressões dentro dela. O operador vai considerar só o resultado booleano para devolver o oposto:

1x = 12 2print(not(x > 3 and x < 10)) 3 4# Saída:

Aqui, vamos resolver primeiro a expressão dentro dos parênteses: x > 3 é True e x < 10 é False. Dessa forma, x > 3 and x < 10 é False e not(False) é True.

Combinando operadores

O not não é o único operador que pode ser combinado com outros. O and e o or também podem formar expressões mais complexas:

1x = 7 2print((x > 0 and x < 10) or x == 100) 3 4

Aqui, o Python primeiro avalia o que está dentro dos parênteses e depois aplica o or. Como x está entre 0 e 10, a expressão dentro do parêntese é True, e o or mantém esse resultado como True.

Um bom exemplo disso seria um caixa eletrônico que libera o saque se a conta estiver ativa E houver saldo suficiente, OU se o cartão for de emergência, o que permite o saque. Essa combinação mostra como operadores podem trabalhar juntos para expressar regras mais completas.


Os operadores lógicos são a base do raciocínio em programação. Logo veremos como eles são aplicados em estruturas de decisão para deixar o código ainda mais inteligente.

← AnteriorOperadores de comparaçãoPróximo →Operadores lógicos com truthy e falsy
6# Saída:
7# True
# Saída:
7# True
# Saída:
7# False
6# True
# False
7# True
6# Saída:
7# False
7
# True
5
# True
# Saída:
5# True