用Python定义一个成绩类,属性有:提示信息(本学期课程成绩如下),方法有获取课程成绩,计算课程等级,计算课程绩点。 并将该类对象实例化,输入合适的参数,并输出结果。 扩展功能:如果采用可变参数作为课程成绩,添加计算课程平均成绩的方法,输出平均成绩。
时间: 2023-12-21 17:06:29 浏览: 69
以下是一个实现上述要求的Python代码:
```python
class Score:
def __init__(self, *scores):
self.scores = scores
self.grade_point = [self._calculate_grade_point(score) for score in scores]
self.letter_grade = [self._calculate_letter_grade(score) for score in scores]
def _calculate_grade_point(self, score):
if score >= 90:
return 4.0
elif score >= 85:
return 3.7
elif score >= 82:
return 3.3
elif score >= 78:
return 3.0
elif score >= 75:
return 2.7
elif score >= 72:
return 2.3
elif score >= 68:
return 2.0
elif score >= 64:
return 1.5
elif score >= 60:
return 1.0
else:
return 0.0
def _calculate_letter_grade(self, score):
if score >= 90:
return 'A+'
elif score >= 85:
return 'A'
elif score >= 82:
return 'A-'
elif score >= 78:
return 'B+'
elif score >= 75:
return 'B'
elif score >= 72:
return 'B-'
elif score >= 68:
return 'C+'
elif score >= 64:
return 'C'
elif score >= 60:
return 'C-'
else:
return 'F'
def get_scores(self):
return self.scores
def get_letter_grade(self):
return self.letter_grade
def get_grade_point(self):
return self.grade_point
def calculate_average_score(self):
return sum(self.scores) / len(self.scores)
def __str__(self):
return "本学期课程成绩如下:\n成绩:{}\n等级:{}\n绩点:{}".format(self.scores, self.letter_grade, self.grade_point)
score = Score(85, 92, 78, 88, 90)
print(score)
print("平均成绩为:", score.calculate_average_score())
```
在这个示例中,我们定义了一个名为`Score`的类,该类代表了学期的成绩。该类的属性包括成绩列表(`scores`),绩点列表(`grade_point`)和等级列表(`letter_grade`)。我们还定义了一些方法,如获取成绩、计算等级和计算绩点。此外,我们还添加了一个方法来计算平均分数,并使用`__str__`方法来定义输出该对象时应显示的字符串。
我们使用`Score`类的`__init__`方法来初始化对象,并将成绩列表作为可变参数传递给它。在`__init__`方法中,我们使用`_calculate_grade_point`和`_calculate_letter_grade`方法来计算每门课的绩点和等级,并将它们存储在`grade_point`和`letter_grade`列表中。我们还定义了`get_scores`、`get_letter_grade`和`get_grade_point`方法,以便在需要时获取成绩、等级和绩点列表。
最后,我们创建了一个`Score`对象,将成绩85、92、78、88和90作为参数传递给它。我们使用`print`语句输出该对象,并使用`calculate_average_score`方法计算平均成绩。
阅读全文