Para cada exercício abaixo crie um arquivo Python distinto e poste nesta tarefa
Definir uma classe Aluno (nome, idade, nota1, nota2, frequencia). Definir as propriedades e os métodos getters e setters. Definir um método para exibição dos dados dos alunos. Definir uma propriedade que retorne a média entre as notas. Sabendo que a média de aprovação é 7,0 , defina um método que retorne uma mensagem se o aluno está aprovado ou reprovado.

Passo 1

Nesta questão vamos implementar em Python uma classe chamada Aluno com os seguintes requisitos:
  • Atributos privados: nome, idade, nota\(1\), nota\(2\), frequencia.
  • Para cada atributo, uma propriedade com getter e setter.
  • Um método para exibir todos os dados do aluno.
  • Uma propriedade que calcule e retorne a média entre nota\(1\) e nota\(2\).
  • Um método que, com base na média de aprovação de , retorne mensagem indicando se o aluno está aprovado ou reprovado.

Passo 2

Definimos o esqueleto da classe Aluno com o construtor __init__, recebendo todos os atributos e armazenando-os em variáveis internas “privadas” (com underscore).
Implementamos para cada atributo uma propriedade (@property) que faz o papel de getter e um setter com validação simples (por exemplo, notas entre 0 e 10, idade e frequência não negativas).
Criamos o método exibirdados(self) que imprime de forma organizada todos os atributos do objeto.
Definimos a propriedade media que retorna a média aritmética de nota1 e nota2.
Implementamos o método status(self) que compara a média com 7,0 e retorna a mensagem "Aluno aprovado" ou "Aluno reprovado".

Resposta

class Aluno:
    def __init__(self, nome, idade, nota_1, nota_2, frequencia):
        self._nome = nome
        self._idade = idade
        self._nota_1 = nota_1
        self._nota_2 = nota_2
        self._frequencia = frequencia

    @property
    def nome(self):
        return self._nome

    @nome.setter
    def nome(self, valor):
        self._nome = valor

    @property
    def idade(self):
        return self._idade

    @idade.setter
    def idade(self, valor):
        if valor < 0:
            raise ValueError("Idade não pode ser negativa.")
        self._idade = valor

    @property
    def nota_1(self):
        return self._nota_1

    @nota_1.setter
    def nota_1(self, valor):
        if not 0 <= valor <= 10:
            raise ValueError("Nota 1 deve estar entre 0 e 10.")
        self._nota_1 = valor

    @property
    def nota_2(self):
        return self._nota_2

    @nota_2.setter
    def nota_2(self, valor):
        if not 0 <= valor <= 10:
            raise ValueError("Nota 2 deve estar entre 0 e 10.")
        self._nota_2 = valor

    @property
    def frequencia(self):
        return self._frequencia

    @frequencia.setter
    def frequencia(self, valor):
        if valor < 0:
            raise ValueError("Frequência não pode ser negativa.")
        self._frequencia = valor

    @property
    def media(self):
        return (self._nota_1 + self._nota_2) / 2

    def exibir_dados(self):
        print(f"Nome: {self._nome}")
        print(f"Idade: {self._idade}")
        print(f"Nota 1: {self._nota_1}")
        print(f"Nota 2: {self._nota_2}")
        print(f"Frequência: {self._frequencia}")
        print(f"Média: {self.media:.2f}")
        print(f"Status: {self.status()}")

    def status(self):
        if self.media >= 7.0:
            return "Aluno aprovado."
        else:
            return "Aluno reprovado."
# Exemplo de uso:
if __name__ == "__main__":
    aluno = Aluno("João", 20, 8.5, 6.5, 75)
    aluno.exibir_dados()

Exercícios relacionados