Skip to content

Instantly share code, notes, and snippets.

@robintux
Last active November 15, 2025 12:12
Show Gist options
  • Select an option

  • Save robintux/4d332388e3ed77f5ecf63fa7fd4ade36 to your computer and use it in GitHub Desktop.

Select an option

Save robintux/4d332388e3ed77f5ecf63fa7fd4ade36 to your computer and use it in GitHub Desktop.

Clase Estudiante – Gestión Académica

Contexto: Sistema de gestión escolar para registrar y consultar información de estudiantes.

Caso de uso: Registrar nombre, edad y calificaciones de un estudiante; calcular su promedio.


class Estudiante:
    """Representa a un estudiante con nombre, edad y calificaciones."""

    def __init__(self, nombre, edad):
        """Inicializa un estudiante con nombre, edad y una lista vacía de calificaciones."""
        self.nombre = nombre                 # atributo de instancia
        self.edad = edad                     # atributo de instancia
        self._calificaciones = []            # atributo protegido (convención)

    def agregar_calificacion(self, nota):
        """Agrega una calificación válida (0-10) a la lista."""
        if 0 <= nota <= 10:
            self._calificaciones.append(nota)
        else:
            raise ValueError("La calificación debe estar entre 0 y 10.")

    @property
    def promedio(self):
        """Calcula y devuelve el promedio de las calificaciones."""
        if not self._calificaciones:
            return 0.0
        return sum(self._calificaciones) / len(self._calificaciones)
        
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment