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.
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\)
enota\(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
Implementamos para cada atributo uma propriedade ( e
, idade e frequência não negativas).
Criamos o método (self) que imprime de forma organizada todos os atributos do objeto.
Definimos a propriedade que retorna a média aritmética de
e
.
Implementamos o método que compara a média com
e retorna a mensagem
ou
.
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
Criamos o método
Definimos a propriedade
Implementamos o método
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()