# Operadores lógicos em Python
> [!NOTE] [[Operadores lógicos]] em [[Linguagem de programação Python|Python]]
>
> > Em [[Linguagem de programação Python|Python]], Temos 3 [[Operadores lógicos]]:
>
> - `and` - Operador de conjunção
> - `or` - Operador de disjunção
> - `not` - Operador de negação
# Nota
Em [[Linguagem de programação Python|Python]], os [[Operadores lógicos]] permitem construir testes lógicos usando as palavras-chave `and`, `or` e `not`, que representam _e_, _ou_ e _não_, respectivamente.
## Operador De Conjunção
![[Operadores lógicos#Operador De Conjunção (E Ou AND)]]
### Exemplo Em Python
```python
# Cenário 1: Usuário e senha corretos
usuario_valido = True
senha_correta = True
pode_acessar = usuario_valido and senha_correta
print(f"Pode acessar (Usuário Válido E Senha Correta): {pode_acessar}")
# Cenário 2: Usuário válido, mas senha incorreta
usuario_valido = True
senha_correta = False
pode_acessar = usuario_valido and senha_correta
print(f"Pode acessar (Usuário Válido E Senha Incorreta): {pode_acessar}")
# Cenário 3: Usuário inválido, mas senha correta (não importa)
usuario_valido = False
senha_correta = True
pode_acessar = usuario_valido and senha_correta
print(f"Pode acessar (Usuário Inválido E Senha Correta): {pode_acessar}")
# Cenário 4: Usuário e senha incorretos
usuario_valido = False
senha_correta = False
pode_acessar = usuario_valido and senha_correta
print(f"Pode acessar (Usuário Inválido E Senha Incorreta): {pode_acessar}")
```
A saída deste programa será:
```bash
Pode acessar (Usuário Válido E Senha Correta): True
Pode acessar (Usuário Válido E Senha Incorreta): False
Pode acessar (Usuário Inválido E Senha Correta): False
Pode acessar (Usuário Inválido E Senha Incorreta): False
```
## Operador De Disjunção
![[Operadores lógicos#Operador De Disjunção (OU Ou OR)]]
### Exemplo Em Python
Vamos verificar se uma loja está aberta. Ela estará aberta se for dia de semana **OU** se for feriado com horário especial.
```python
# Cenário 1: É dia de semana e feriado (ambos verdadeiros)
eh_dia_de_semana = True
eh_feriado_com_horario_especial = True
loja_aberta = eh_dia_de_semana or eh_feriado_com_horario_especial
print(f"Loja aberta (Dia de Semana OU Feriado Especial): {loja_aberta}")
# Cenário 2: É dia de semana, mas não feriado
eh_dia_de_semana = True
eh_feriado_com_horario_especial = False
loja_aberta = eh_dia_de_semana or eh_feriado_com_horario_especial
print(f"Loja aberta (Dia de Semana OU Não Feriado): {loja_aberta}")
# Cenário 3: Não é dia de semana, mas é feriado com horário especial
eh_dia_de_semana = False
eh_feriado_com_horario_especial = True
loja_aberta = eh_dia_de_semana or eh_feriado_com_horario_especial
print(f"Loja aberta (Não Dia de Semana OU Feriado Especial): {loja_aberta}")
# Cenário 4: Não é dia de semana e não é feriado (ambos falsos)
eh_dia_de_semana = False
eh_feriado_com_horario_especial = False
loja_aberta = eh_dia_de_semana or eh_feriado_com_horario_especial
print(f"Loja aberta (Não Dia de Semana OU Não Feriado): {loja_aberta}")
```
A saída deste programa será o seguinte:
```bash
Loja aberta (Dia de Semana OU Feriado Especial): True
Loja aberta (Dia de Semana OU Não Feriado): True
Loja aberta (Não Dia de Semana OU Feriado Especial): True
Loja aberta (Não Dia de Semana OU Não Feriado): False
```
## Operador De Negação
![[Operadores lógicos#Operador De Negação]]
### Exemplo Em Python
Vamos verificar o status de um semáforo. Se ele **não** estiver verde, significa que está vermelho ou amarelo.
```python
# Cenário 1: Semáforo está verde
semaforo_verde = True
nao_esta_verde = not semaforo_verde
print(f"Semáforo não está verde (está verde): {nao_esta_verde}")
# Cenário 2: Semáforo não está verde (está vermelho ou amarelo)
semaforo_verde = False
nao_esta_verde = not semaforo_verde
print(f"Semáforo não está verde (não está verde): {nao_esta_verde}")
```
A saída deste programa será:
```bash
Semáforo não está verde (está verde): False
Semáforo não está verde (não está verde): True
```
---
# Referências
* [Operadores Lógicos Python (w3schools.com)](https://www.w3schools.com/python/gloss_python_logical_operators.asp)
* [Operador lógico – Wikipédia, a enciclopédia livre (wikipedia.org)](https://en.wikipedia.org/wiki/Logical_operator)