Seções 3.3.2 e 3.3.3 — Combinando condições com lógica booleana
Python tem três operadores lógicos: not (não), and (e) e or (ou). Cada um segue uma tabela verdade:
| V | not V |
|---|---|
| V | F |
| F | V |
| V1 | V2 | V1 and V2 |
|---|---|---|
| V | V | V |
| V | F | F |
| F | V | F |
| F | F | F |
| V1 | V2 | V1 or V2 |
|---|---|---|
| V | V | V |
| V | F | V |
| F | V | V |
| F | F | F |
Resumindo: not inverte. and só é True se ambos forem True. or é True se pelo menos um for True.
Podemos combinar operadores relacionais com lógicos. A precedência é: not primeiro, depois and, depois or.
Exemplo prático: Uma pessoa pode fazer empréstimo se ganhar mais de R$ 1000 e tiver mais de 18 anos:
Se salário = 100 e idade = 20:
Se salário = 2000 e idade = 30:
💡 Expressões com mais de um operador lógico: avalie primeiro not, depois and, por último or. Na dúvida, use parênteses para deixar claro.
Complete a tabela a seguir utilizando a = True, b = False e c = True.
| Expressão | Resultado |
|---|---|
| a and a | ○ True ○ False |
| b and b | ○ True ○ False |
| not c | ○ True ○ False |
| not b | ○ True ○ False |
| not a | ○ True ○ False |
| a and b | ○ True ○ False |
| b and c | ○ True ○ False |
| a or c | ○ True ○ False |
| b or c | ○ True ○ False |
| c or a | ○ True ○ False |
| c or b | ○ True ○ False |
| c or c | ○ True ○ False |
| b or b | ○ True ○ False |
Escreva uma expressão para determinar se uma pessoa deve ou não pagar imposto. Considere que pagam imposto pessoas cujo salário é maior que R$ 1.200,00.
Calcule o resultado da expressão A > B and C or D, utilizando os valores da tabela a seguir.
| A | B | C | D | Resultado |
|---|---|---|---|---|
| 1 | 2 | True | False | |
| 10 | 3 | False | False | |
| 5 | 1 | False | True |
Escreva uma expressão que será utilizada para decidir se um aluno foi ou não aprovado. Para ser aprovado, todas as médias do aluno devem ser maiores que 7. Considere que o aluno cursa apenas três matérias, e que a nota de cada uma está armazenada nas seguintes variáveis: matéria1, matéria2 e matéria3.