Crie uma classe chamada Aluno que represente um estudante com os seguintes atributos: nome, idade, curso e uma lista de notas. A classe deve conter um construtor que receba os quatros atributos como parâmetros e os
inicialize, mas deixe o último como facultativo. Um método chamado exibir_dados() que imprime os dados do aluno de forma organizada. Um método chamado eh_maior_de_idade() que retorna True se o aluno tiver 18 anos ou mais, e False caso contrário. E um método para retornar a média das notas.
inicialize, mas deixe o último como facultativo. Um método chamado exibir_dados() que imprime os dados do aluno de forma organizada. Um método chamado eh_maior_de_idade() que retorna True se o aluno tiver 18 anos ou mais, e False caso contrário. E um método para retornar a média das notas.
Passo 1
Vamos definir a classe
Aluno
e seu construtor. Receberemos nome
, idade
, curso
e um parâmetro opcional notas
. Para evitar problemas com listas mutáveis como valor default, usaremos None
e depois inicializaremos com uma lista vazia.Passo 2
Implementamos o método
exibir_dados()
, que mostra de forma organizada cada atributo do aluno, incluindo a lista de notas (se houver).Passo 3
Criamos o método
eh_maior_de_idade()
, que verifica se idade
é maior ou igual a 18 e retorna True
ou False
.Passo 4
Adicionamos o método
calcular_media()
, que soma as notas e divide pela quantidade de elementos. Se a lista estiver vazia, retornamos None
para indicar que não há média.Resposta
class Aluno:
def __init__(self, nome, idade, curso, nota\(s=N\)one):
"""
Construtor da classe Aluno.
:param nome: str
:param idade: int
:param curso: str
:param notas: list de números (opcional)
"""
self.nome = nome
self.idade = idade
self.curso = curso
# evita usar lista mutável como default
self.notas = notas if notas is not None else []
def \(exibir_dados\)(self):
"""
Imprime os dados do aluno de forma organizada.
"""
print(f"Nome: {self.nome}")
print(f"Idade: {self.idade}")
print(f"Curso: {self.curso}")
if self.notas:
\(notas_formatadas\) = ", ".join(str(n) for n in self.notas)
print(f"Notas: [{notas_formatadas}]")
else:
print("Notas: [] (nenhuma nota registrada)")
def \(eh_maior_de_idade\)(self):
"""
Retorna True se o aluno tiver 18 anos ou mais, caso contrário False.
"""
return self.idade >\(=18\)
def \(calcular_media\)(self):
"""
Retorna a média das notas ou None se não existirem notas.
"""
if not self.notas:
return None
return sum(self.notas) / len(self.notas)
Exemplo de uso:
a\(1=\) Aluno("Mariana", 20, "Engenharia", [8.5, 7.0, 9.0])
a1.\(exibir_dados\)()
# Nome: Mariana
# Idade: 20
# Curso: Engenharia
# Notas: [8.5, 7.0, 9.0]
print(a1.\(eh_maior_de_idade\)()) # True
print(a1.\(calcular_media\)()) # 8.166666666666666
a\(2=\) Aluno("Pedro", 17, "Matemática")
a2.\(exibir_dados\)()
# Nome: Pedro
# Idade: 17
# Curso: Matemática
# Notas: [] (nenhuma nota registrada)
print(a2.\(eh_maior_de_idade\)()) # False
print(a2.\(calcular_media\)()) # None