Question
This project assumes that you have completed Project 1. Place several Student objects into a list and shuffle it. Then run the sort method with
This project assumes that you have completed Project 1. Place several Student objects into a list and shuffle it. Then run the sort method with this list and display all of the students information.
Note: The sorted list should be output in the following format
Sorted list of students: Name: Name1 Scores: 0 0 0 0 0 0 0 0 0 0 Name: Name2 Scores: 0 0 0 0 0 0 0 0 0 0 Name: Name3 Scores: 0 0 0 0 0 0 0 0 0 0 Name: Name4 Scores: 0 0 0 0 0 0 0 0 0 0 Name: Name5 Scores: 0 0 0 0 0 0 0 0 0 0
Hint: Use the print function with a Student object as an argument to print the Student object in the format specified above.
Student.py code - Python 3
class Student(object): """Represents a student."""
def __init__(self, name, number): """All scores are initially 0.""" self.name = name self.scores = [] for count in range(number): self.scores.append(0)
def getName(self): """Returns the student's name.""" return self.name
def setScore(self, i, score): """Resets the ith score, counting from 1.""" self.scores[i - 1] = score
def getScore(self, i): """Returns the ith score, counting from 1.""" return self.scores[i - 1]
def getAverage(self): """Returns the average score.""" return sum(self.scores) / len(self._scores) def getHighScore(self): """Returns the highest score.""" return max(self.scores)
def __str__(self): """Returns the string representation of the student.""" return "Name: " + self.name + " Scores: " + \ " ".join(map(str, self.scores))
def __lt__(self, other): """Returns self < other, with respect to names.""" return self.name < other.name
def __ge__(self, other): """Returns self >= other, with respect to names.""" return self.name >= other.name
def __eq__(self, other): """Tests for equality.""" if self is other: return True elif type(self) != type(other): return False else: return self.name == other.name
def main(): """Tests sorting.""" # Create the list and put 5 students into it lyst = [] for count in reversed(range(5)): s = Student("Name" + str(count + 1), 10) lyst.append(s) # Complete the definition of the main function
if __name__ == "__main__": main()
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started