请使用python语言,构建一个学生类,类属性为 姓名:name,年龄:age,性别: sex,爱好: hobby(默认为读书),成绩列表: scoreLst (默认为空列表) ,总分: scoreSum (默认为0) ,平均分: scoreAvg (默认为0) 类方法有 打招呼: sayHi() 爱好调整: setHobby() 平均分和总分统计: analysisScore() 最后通过使用类实例化一个学生对象,比如本人,或其他同学,完成对应的方法调用。 运行结果为: 我是一名学生,名字是张三,爱好是读书。 请输入你的爱好:打游戏 张三同学默认爱好是读书; 张三同学真正的爱好是打游戏! 张三同学的爱好是打游戏, 平均分是83.7,总分是251。
时间: 2024-02-16 11:00:30 浏览: 106
好的,这是Python的代码实现:
```python
class Student:
def __init__(self, name, age, sex, hobby='读书', scoreLst=[]):
self.name = name
self.age = age
self.sex = sex
self.hobby = hobby
self.scoreLst = scoreLst
self.scoreSum = sum(scoreLst)
self.scoreAvg = 0 if len(scoreLst) == 0 else round(self.scoreSum/len(scoreLst), 1)
@classmethod
def sayHi(cls):
print("我是一名学生")
def setHobby(self, hobby):
print(f"{self.name}同学默认爱好是{self.hobby}; {self.name}同学真正的爱好是{hobby}!")
self.hobby = hobby
def analysisScore(self):
self.scoreSum = sum(self.scoreLst)
self.scoreAvg = 0 if len(self.scoreLst) == 0 else round(self.scoreSum/len(self.scoreLst), 1)
print(f"{self.name}同学的爱好是{self.hobby},平均分是{self.scoreAvg},总分是{self.scoreSum}。")
# 实例化一个学生对象
zhangsan = Student('张三', 20, '男', scoreLst=[90, 85, 76])
# 调用类方法sayHi
zhangsan.sayHi()
# 调用实例方法setHobby
hobby = input("请输入你的爱好:")
zhangsan.setHobby(hobby)
# 调用实例方法analysisScore
zhangsan.analysisScore()
```
运行结果为:
```
我是一名学生
请输入你的爱好:打游戏
张三同学默认爱好是读书; 张三同学真正的爱好是打游戏!
张三同学的爱好是打游戏,平均分是83.7,总分是251。
```
阅读全文