Esta aula marca o início do Módulo 5, focado em operadores lógicos. Eles são a fundação para a construção de condições complexas e decisões inteligentes nos seus programas, permitindo que você combine resultados de expressões booleanas.
Os operadores lógicos (and, or, not) são usados para combinar duas ou mais expressões condicionais, resultando em um único valor booleano (True ou False). Eles são essenciais dentro de estruturas de controle como if/elif/else e laços while.
and (E)O operador and é o mais restritivo dos três. Ele retorna True somente se todas as expressões que ele conecta forem verdadeiras. Basta que uma única condição seja falsa para que todo o resultado seja False.
| Expressão 1 | Operador | Expressão 2 | Resultado |
|---|---|---|---|
True |
and |
True |
True |
True |
and |
False |
False |
False |
and |
True |
False |
False |
and |
False |
False |
Para que uma pessoa possa se candidatar a um cargo, ela deve atender simultaneamente a dois critérios: ter mais de 18 anos E ter um diploma universitário.
idade = 22
possui_diploma = True
# A condição completa só é True se AMBAS as partes forem True.
elegivel_ao_cargo = (idade >= 18) and possui_diploma
print(f"Idade: {idade}")
print(f"Possui Diploma: {possui_diploma}")
print(f"Elegível ao cargo? {elegivel_ao_cargo}")
# Teste com uma condição False:
idade_2 = 17
elegivel_2 = (idade_2 >= 18) and possui_diploma
print(f"\\nElegível 2 (Idade < 18)? {elegivel_2}") # Saída: False
idade = 22
possui_diploma = True
# A condição completa só é True se AMBAS as partes forem True.
if idade >= 18 and possui_diploma:
print("O candidato é maior de idade e possui diploma,")
print(("portanto é elegivel para o cargo")
# Teste com uma condição False:
idade_2 = 17
possui_diploma = True
if idade_2 >= 18 and possui_diploma:
print("O candidato não é maior de idade ou não possui diploma,")
print(("portanto não é elegivel para o cargo")
andPython é eficiente. Se a primeira expressão conectada pelo and for False, o interpretador nem sequer avalia a segunda expressão, pois o resultado final já é garantidamente False.
or (OU)O operador or é o mais permissivo. Ele retorna True se pelo menos uma das expressões que ele conecta for verdadeira. Ele só retorna False se todas as condições forem falsas.
| Expressão 1 | Operador | Expressão 2 | Resultado |
|---|---|---|---|
True |
or |
True |
True |
True |
or |
False |
True |
False |
or |
True |
True |
False |
or |
False |
False |
Um usuário tem acesso de administrador se ele pertencer ao grupo 'Administrador' OU se o seu status for 'Super_User'.
grupo_usuario = "Visitante"
status_usuario = "Super_User"
# A condição completa é True se PELA MENOS UMA das partes for True.
acesso_liberado = (grupo_usuario == "Administrador") or (status_usuario == "Super_User")
if acesso_liberado:
print("Acesso concedido: O usuário é Super_User.")
else:
print("Acesso negado.")
# Teste com ambas as condições False:
grupo_2 = "Visitante"
status_2 = "Normal"
acesso_negado = (grupo_2 == "Administrador") or (status_2 == "Super_User")
print(f"\\nAcesso liberado (teste 2)? {acesso_negado}") # Saída: False
or