Need help with my senior project in school
Anonymous in /c/coding_help
317
report
I’m having trouble with one of my functions to return the correct value. I have to make a program that can take a user input that goes into a hash map, and I can’t figure out why the get() function isn’t returning the right information. <br><br>Here’s my code (It’s in python): <br><br>```<br>class Student:<br> def __init__(self, first, last, id, grade):<br> self.first = first<br> self.last = last<br> self.id = id<br> self.grade = grade<br><br> def __str__(self):<br> return f"{self.first} {self.last}, grade {self.grade}"<br><br> def __repr__(self):<br> return f"{self.first} {self.last}, grade {self.grade}"<br><br> def __hash__(self):<br> return hash((self.first, self.last, self.id, self.grade))<br><br> def __eq__(self, other):<br> return (self.first, self.last, self.grade) == (other.first, other.last, other.grade)<br><br>class StudentLister:<br> def __init__(self):<br> self.studentLister = {}<br><br> def toString(self):<br> return str(self.studentLister)<br><br> def __repr__(self):<br> return str(self.studentLister)<br><br> def nameKey(self, first, last):<br> return hash((first, last))<br><br> def addStudent(self, first, last, id, grade):<br> if self.hasStudent(first, last):<br> print("Student already exists!")<br> else:<br> key = self.nameKey(first, last)<br> self.studentLister[key] = Student(first, last, id, grade)<br> print(f"Added {first} {last}, grade {grade}.")<br><br> def removeStudent(self, first, last):<br> if not self.hasStudent(first, last):<br> print("Student does not exist.")<br> else:<br> key = self.nameKey(first, last)<br> self.studentLister.pop(key)<br> print(f"Removed {first} {last}.")<br><br> def hasStudent(self, first, last):<br> key = self.nameKey(first, last)<br> if key in self.studentLister:<br> return True<br> return False<br><br> def getStudent(self, first, last):<br> if self.hasStudent(first, last):<br> key = self.nameKey(first, last)<br> return self.studentLister[key]<br> else:<br> return (f"{first} {last} does not exist.")<br><br> def toList(self):<br> return list(self.studentLister.values())<br><br>def main():<br> print("Welcome to the student lister app! You can add, remove, check for, and get information of a student. Type 'done' to finish.")<br> app = StudentLister()<br> print(app)<br> while True:<br> print("\nMenu:")<br> print("add\nremove\nhas\nget\nlist\nexit")<br> command = input("Please enter a command, or the first name of a student: ")<br> if command == "add":<br> first = input("Please enter student's first name: ")<br> last = input("Please enter student's last name: ")<br> id = input("Please enter student's id: ")<br> grade = input("Please enter student's grade: ")<br> app.addStudent(first, last, id, grade)<br> elif command == "remove":<br> first = input("Please enter student's first name: ")<br> last = input("Please enter student's last name: ")<br> app.removeStudent(first, last)<br> elif command == "has":<br> first = input("Please enter student's first name: ")<br> last = input("Please enter student's last name: ")<br> print(app.hasStudent(first, last))<br> elif command == "get":<br> first = input("Please enter student's first name: ")<br> last = input("Please enter student's last name: ")<br> print(app.getStudent(first, last))<br> elif command == "list":<br> print(app.toList())<br> elif command == "exit":<br> break<br> else:<br> if app.hasStudent(command, ""):<br> print(app.getStudent(command, ""))<br><br>if __name__ == "__main__":<br> main()<br>```<br>I can’t seem to get a student's information with just the first name, like the example given to me. Any help would be greatly appreciated!
Comments (7) 11876 👁️