Expressões lógicas e operadores relacionais

Tópicos

  • tipo bool;
  • valores booleanos: True e False;
  • operadores lógicos and, or e not;
  • expressões lógicas ou booleanas;
  • operadores relacionais.

Livro

Sugerimos que seja lido a sessão Valores booleanos e expressões booleanas do livro Como Pensar Como um Cientista da Computação.

Valores booleanos

Em Python, uma variável pode assumir valor booleano True (= verdadeiro) ou False (= falso). Esses valores são úteis para representar, por exemplo, o resultado de uma comparação.

Qual a saída desse programa? Simule a saída e depois o execute clicando no botão Run.

Operadores e expressões lógicas

Expressões aritméticas, como 2 + 3 * 4, são formadas por valores e operadores aritméticos +, *, -, /,… De maneira semelhante, aritméticos, , expressões lógicas ou booleanas são formadas por valores e os operadores lógicos tais como and, or e not.

Operador and

Dados dois valores booleanos a e b, o operador lógico and resulta em True apenas quando a e b foram ambos True, e retorna False em caso contrário.

Qual o resultado da função print() do programa abaixo? Altere os valores das variáveis a e b e veja o resultado.

A tabela abaixo mostra o resultado de and para todas as combinações de a e b.

and a = True a = False
b = True True False
b = False False False

Operador or

Dados dois valores booleanos a e b, o operador lógico or resulta em False apenas quando a e b foram ambos False, e retorna True em caso contrário.

Qual o resultado da função print()? Altere os valores de a e b no programa abaixo e veja o resultado.

A tabela abaixo mostra o resultado de or para todas as combinações de a e b.

or a = True a = False
b = True True True
b = False True False

Operador not

O operador lógico not muda o valor de seu argumento, ou seja, not True é False, e not False é True.

Expressões Lógicas

Expressões lógicas ou booleans são expressões cujo valor é verdadeiro (= True em Python) ou falso (= False em Python) e usam os operadores relacionais:

Operador Descrição
== igual
!= diferente
> maior
< menor
>= maior ou igual
<= menor ou igual

Assim, o resultado de uma comparação é um valor booleano, True ou False.

Use a janela abaixo para experimentar esses operadores.

Como o resultado de uma comparação é um booleano, comparações podem ser encadeadas por meio de operadores lógicos. Por exemplo, o trecho de código abaixo ilustra se uma pessoa está dentro do peso normal segundo a tabela de Indice de Massa Corporal.

Programa para calcular o IMC

Intervalos em Python

Para facilitar a legibilidade de intervalos, o Python permite escrever expressões relacionais do tipo

    17 <= imc < 18.5

ao invés da forma mais *computacional*
    17 <= imc and imc < 18.5

Experimente reescrevendo alguns trechos de código do exemplo anterior.

Exercícios

Exercício 1

Escreva um programa que leia um ano (um número inteiro) e calcula se o ano é bisexto.

Um ano é bisexto deve ser múltiplo de 4 mas não pode ser múltiplo de 100, a menos que seja também múltiplo de 400.

Exercício 2

O Leonard está procurando uma namorada no site alma.gemea.org e, para isso, ele preenche uma ficha com as suas preferências:

  • altura: 155 a 170
  • peso : 45 a 65
  • idade : 25 a 35
  • cabelo: “loiro”
  • sexo : “feminino”
  • escolaridade: não “PhD”

O programa abaixo mostra os dados de uma cliente chamada Penny. Complete o programa abaixo para ver se a Penny é compatível com o Leonard, imprimindo True ou False.

Modifique alguns valores para testar a sua expressão.

Next Section - Comando de repetição: while