class Classificador:
def __init__(self, estudante: dict):
self.estudante = estudante
def ler_nome(self):
nome = input("Digite o nome do estudante: ")
if not nome.strip():
print("Nome inválido. Atribuindo 'Desconhecido'.")
self.estudante["nome"] = "Desconhecido"
else:
self.estudante["nome"] = nome.strip()
def ler_notas(self):
for chave in ["nota1", "nota2", "nota3"]:
try:
self.estudante[chave] = self.validar_notas(float(input(f"Digite o valor para {chave}: ")), chave)
except ValueError:
print(f"Entrada inválida. Atribuindo 0.0 a {chave} do aluno {self.estudante["nome"].capitalize()}.")
self.estudante[chave] = 0.0
def validar_notas(self, nota: str, chave: str):
if not (0.0 <= nota <= 10.0):
print(f"Valor inválida para {chave}. Deve estar entre 0 e 10. Atribuindo 0.0.")
return 0.0
return nota
def calcular_media(self):
self.estudante["media"] = (self.estudante["nota1"] + self.estudante["nota2"] + self.estudante["nota3"]) / 3
def classificar(self):
if self.estudante["media"] >= 7.0:
self.estudante["status"] = "aprovado"
elif 5.0 <= self.estudante["media"] < 7.0:
self.estudante["status"] = "recuperação"
else:
self.estudante["status"] = "reprovado"
def exibir_resultado(self):
print(
f"Estudante {self.estudante['nome'].capitalize()} "
f"{self.estudante['status'].upper()} "
f"com média {self.estudante['media']:.2f}"
)
estudante = {
"nome": "",
"nota1": 0.0,
"nota2": 0.0,
"nota3": 0.0,
"media": 0.0,
"status": ""
}
classificador = Classificador(estudante)
classificador.ler_nome()
classificador.ler_notas()
classificador.calcular_media()
classificador.classificar()
classificador.exibir_resultado()