Aula 07: Lógica Booleana | Lógica de Programação (c/ Python)
Comparações resultam em valores booleanos, ou seja, em True ou False.
Mas o que acontece quando temos comparações com múltiplos fatores?
Por exemplo, vamos supor que estamos administrando um parque de diversões e que, para entrar em um determinado brinquedo, é necessário:
Aplicando o que já conhecemos até agora, podemos fazer este código da seguinte maneira:
idade = int(input("Idade: "))
altura = float(input("Altura: "))
if idade >= 14:
if altura >= 1.60:
print("Entrada liberada.")
else:
print("Entrada proibida.")
else:
print("Entrada proibida.")
Isso funciona, mas torna o código mais difícil de entender e de dar manutenção…
Para melhorar este código, podemos usar os operadores lógicos. Com eles, podemos combinar duas ou mais condições em um único resultado. Olha só:
idade = int(input("Idade: "))
altura = float(input("Altura: "))
if idade >= 14 and altura >= 1.60:
print("Entrada liberada.")
else:
print("Entrada proibida.")
Note que a palavra and “une” as duas condições, de forma que o resultado será verdadeiro somente se todas as outras também forem verdadeiras (True). Caso qualquer uma destas condições seja falsa, todo o conjunto será falso (False).
Legal, né?
Poderiamos flexibilizar esta regra usando o operador or. Neste operador, se qualquer uma das condições for verdadeira, o conjunto todo também é.
idade = int(input("Idade: "))
altura = float(input("Altura: "))
if idade >= 14 or altura >= 1.60:
print("Entrada liberada.")
else:
print("Entrada proibida.")
Além do and e do or, existe o operador not. Mas falaremos dele em outra aula.
Em resumo:
| Operador | Como funciona |
|---|---|
| and (E lógico) | Retorna true se ambas as condições forem verdadeiras. |
| or (OU lógico) | Retorna true se pelo menos uma das condições for verdadeira. |
| not (NÃO lógico) | Inverte o valor lógico de uma expressão. |
10 < 14 and 14 > 10 # true, pq ambas comparações são verdadeiras
10 > 14 and 14 > 10 # false, pq a primeira comparação é falsa
10 < 14 or 14 < 10 # true, pq a primeira comparação é verdadeira
10 < 14 or 14 > 10 # true, pq ambas são verdadeiras
10 > 14 or 14 < 10 # false, pq ambas são falsas
not 10 < 14 # false, pq inverte
not 10 > 14 # true, pq inverte
Escreva um programa que simula o sistema de autenticação de um sistema. O usuário irá inserir o username e o password. Seu sistema deverá verificar se as informações inseridas batem com os dados abaixo:
username: admin
password: senhasegura
Caso a informação inserida esteja correta, exibir a mensagem: “Acesso concedido.”. Caso contrário: “Sei quem é você não, sai fora!”