3.2: Estruturas de Decisão Encadeadas e Condições Múltiplas

Na tua próxima tarefa na empresa PyTalento, foste encarregado de criar um sistema de verificação de notas mais robusto. Agora, precisas de tratar situações mais complexas, onde várias condições podem ser verificadas em simultâneo. Para isso, vais aprender a encadear estruturas de decisão e a usar operadores lógicos para combinar condições.

Objetivos

  • Aprender a encadear múltiplas estruturas de decisão if e elif.
  • Compreender o uso de operadores lógicos (and, or, not).
  • Criar condições mais complexas usando a combinação de várias condições.

Estruturas de Decisão Encadeadas

Nas situações anteriores, as nossas estruturas de decisão envolviam apenas uma verificação de cada vez. No entanto, em casos mais complexos, pode ser necessário verificar múltiplas condições ao mesmo tempo. Para isso, podes encadear várias condições, criando decisões que dependem de mais de uma verificação.

Exemplo Simples de Encadeamento com if e elif:

      
  # Exemplo de encadeamento de if/elif
  nota = 9
  comportamento = 8

  if nota >= 18 and comportamento >= 9:
      print("O estudante passou com distinção.")
  elif nota >= 10 and comportamento >= 7:
      print("O estudante está aprovado.")
  else:
      print("O estudante está reprovado.")
      
    

Neste exemplo, estamos a verificar a nota e o comportamento do estudante. Para passar com distinção, o estudante precisa de uma nota maior ou igual a 18 e um comportamento maior ou igual a 9. Para ser aprovado, o estudante precisa de uma nota maior ou igual a 10 e um comportamento maior ou igual a 7. Se nenhuma destas condições for verdadeira, o estudante está reprovado.

Operadores Lógicos

Em Python, os operadores lógicos and, or, e not permitem-nos combinar múltiplas condições para criar decisões mais complexas.

and (E)

O operador and é usado para combinar duas ou mais condições, onde todas as condições precisam de ser verdadeiras para que o bloco de código seja executado. No exemplo anterior, usamos and para verificar se a nota e o comportamento são ambos satisfatórios.

or (OU)

O operador or é usado para combinar duas ou mais condições, onde apenas uma das condições precisa de ser verdadeira para que o bloco de código seja executado.

Exemplo com or:

      
  # Exemplo de uso do operador or
  nota = 9
  comportamento = 5

  if nota >= 10 or comportamento >= 7:
      print("O estudante está aprovado.")
  else:
      print("O estudante está reprovado.")
      
    

Aqui, o estudante será aprovado se tiver uma nota maior ou igual a 10 ou se o seu comportamento for maior ou igual a 7. Ou seja, basta uma das condições ser verdadeira para que o estudante seja aprovado.

not (NÃO)

O operador not inverte o valor de uma condição. Se a condição for verdadeira, not torna-a falsa, e vice-versa.

Exemplo com not:

      
  # Exemplo de uso do operador not
  faltas = 15

  if not faltas > 10:
      print("O estudante tem faltas dentro do limite.")
  else:
      print("O estudante excedeu o limite de faltas.")
      
    

Neste exemplo, o operador not inverte a condição. Se o número de faltas for menor ou igual a 10, o estudante está dentro do limite de faltas. Caso contrário, o estudante excedeu o limite.

Combinação de Operadores

Os operadores lógicos podem ser combinados para criar condições ainda mais complexas. Podes usar parênteses para garantir que as condições são avaliadas na ordem correta.

Exemplo de Combinação de Operadores:

      
  # Exemplo de combinação de operadores
  nota = 12
  comportamento = 6
  faltas = 8

  if (nota >= 10 and comportamento >= 7) or faltas <= 10:
      print("O estudante está aprovado.")
  else:
      print("O estudante está reprovado.")
      
    

Neste exemplo, o estudante será aprovado se tiver uma nota maior ou igual a 10 e um comportamento maior ou igual a 7, ou se tiver menos de 10 faltas. A condição entre parênteses é avaliada primeiro, e depois o operador or decide se o estudante será aprovado com base no número de faltas.

Exercício Prático

A empresa PyTalento pediu-te que desenvolvas um programa que verifique as condições de aprovação de um estudante com base em três critérios: nota, comportamento e faltas. O programa deve seguir as seguintes regras:

Requisitos:

  1. Pede ao utilizador para introduzir a nota, o comportamento e o número de faltas de um estudante.
  2. O estudante passa com distinção se tiver uma nota maior ou igual a 18 e um comportamento maior ou igual a 9.
  3. O estudante é aprovado se tiver uma nota maior ou igual a 10, um comportamento maior ou igual a 7, e menos de 10 faltas.
  4. O estudante é reprovado em todos os outros casos.

Exemplo de Código:

      
  # Pedir os dados ao utilizador
  nota = float(input("Introduz a nota do estudante: "))
  comportamento = float(input("Introduz a nota de comportamento: "))
  faltas = int(input("Introduz o número de faltas: "))

  # Verificar as condições
  if nota >= 18 and comportamento >= 9:
      print("Passou com distinção.")
  elif nota >= 10 and comportamento >= 7 and faltas <= 10:
      print("Aprovado.")
  else:
      print("Reprovado.")
      
    
<< 3.1: Estruturas de Decisã... Índice 3.3: Alternativas ao Enca... >>