Question: Jack is testing the Student class developed earlier in this chapter. He creates an instance of this class with 0 scores and receives an error

Jack is testing the Student class developed earlier in this chapter. He creates an instance of this class with 0 scores and receives an error message when he attempts to view the average score:
>>> s = Student("Jack",0)
>>> print(s)
Name: Jack
Scores:
>>> s.getAverageScoreScore()
Traceback (most recent call last):
File "", line 1, in
s.getAverageScore()
File "/Users/ken/pythonfiles/student.py", line 42, in getAverageScoreScore
return sum(self.scores)/ len(self.scores)
ZeroDivisionError: division by zero
Explain the error detected during this test and prevent it from happening.
"""
File: student.py
Resources to manage a student's name and test scores.
"""
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 getAverageScore(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 main():
s = Student("Jack",0)
print(s)
s.getAverageScore()
if __name__=="__main__":
main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!