Files
cis163/book_stuff/student.py
cutsweettea cb8e6e9b5a more cool stuff
chess, woah
2025-10-15 12:46:55 -04:00

43 lines
1.5 KiB
Python

class Student:
def __init__(self, name: str, gNumber: int, gpa: float):
self.set_name(name)
self.set_gNumber(gNumber)
self.set_gpa(gpa)
# --- Name ---
def get_name(self) -> str:
return self._name
def set_name(self, value: str) -> None:
if not isinstance(value, str):
raise TypeError("Name must be a string")
if not value.isalpha():
raise ValueError("Name must contain only alphabetic characters")
if not (1 <= len(value) <= 255):
raise ValueError("Name must be between 1 and 255 characters")
self._name = value
# --- gNumber ---
def get_gNumber(self) -> int:
return self._gNumber
def set_gNumber(self, value: int) -> None:
if not isinstance(value, int):
raise TypeError("gNumber must be an integer")
if not (100000 <= value <= 999999):
raise ValueError("gNumber must be a 6-digit number between 100000 and 999999")
self._gNumber = value
# --- GPA ---
def get_gpa(self) -> float:
return self._gpa
def set_gpa(self, value: float) -> None:
if not isinstance(value, (int, float)):
raise TypeError("GPA must be a number")
if not (0.0 <= value <= 6.0):
raise ValueError("GPA must be between 0.0 and 6.0")
self._gpa = float(value)
def __str__(self) -> str:
return f"Student(Name: {self._name}, gNumber: {self._gNumber}, GPA: {self._gpa:.2f})"