python 实验五"/>
python 实验五
实验五
1.有下面的类属性:姓名、年龄、成绩列表[语文,数学,英语],其中每门课成绩的类型为整数,类的方法如下所述:
(1)列表项列表项获取学生的姓名。get_name(),返回类型:str。
(2)获取学生的年龄。get_age(),返回类型:int。
(3)返回3门科目中最高的分数。get_course(), 返回类型:int。
类定义好之后,可以定义同学测试如下: zm = Student('zhangming',20,[69,88,100]);返回结果: zhangming 20 100
class Student:def __init__(self, name, age, grade):self.name = nameself.age = ageself.grade = gradedef get_name(self):print(str(self.name))def get_age(self):print(int(self.age))def get_course(self):a = list(self.grade.values())print(max(a))zm = Student('张敏', 20, {'语文': 69, '数学': 88, '英语': 100})
zm.get_name()
zm.get_age()
zm.get_course()
2.设计一个Circle(圆)类,包括圆心位置、半径、颜色等属性。编写构造方法和其他方法,计算周长和面积。请编写程序验证Circle(圆)类的功能。
class Circle:def __init__(self,tup, radius, color):self.center = tupself.radius = radiusself.color = colordef perimeter(self):#周长return 3.14 * 2 * self.radiusdef area(self):#面积return 3.14 * self.radius * self.radius
circle = Circle((0,0),5,"黑色")
print(format(circle.perimeter(),'.2f'))
print(float(circle.area()))
3.封装一个学生类,有姓名,有年龄,有性别,有英语成绩,数学成绩,语文成绩;求总分,平均分,以及打印输出学生的相关信息。
class Student: # 定义一个学生类名def __init__(self,student,name,age,gender,English_results,math_results,chinese_results): # 初始化参数7个实例属性self.student = student # 具体参数名self.name = name # 具体参数名self.age = age # 具体参数名self.gender = gender # 具体参数名self.English_results = English_results # 具体参数名self.math_results = math_results # 具体参数名self.chinese_results = chinese_results # 具体参数名# 计算总分 -方法1def sum_score(self): # 类方法使用函数return self.English_results + self.math_results + self.chinese_results # 返回3科成绩的总值# 计算三科平均分 -方法2def average_score(self): # 类方法使用函数return (self.English_results + self.math_results + self.chinese_results) / 3 # 返回3科成绩的平均分# 打印学生的个人信息:我的名字叫XXX,年龄:xxx, 性别:xxx -方法3def personal_info(self): # 类方法使用函数print('我的身份是:{},我的名字叫:{},年龄:{},性别是:{},英语成绩是:{},数学成绩是:{},语文成绩是:{},总成绩是:{},平均成绩是:{:.2f}'.format(self.student,self.name,self.age,self.gender,self.English_results,self.math_results,self.chinese_results,member.sum_score(),member.average_score())) # 打印个人信息,使用函数# 进行实例化,调用__init__ 有7个参数,在实例化的时候就给7个参数
member = Student('学生','小麦',20,'男',97,57,60) # member就是Studer类的一个对象 self 就是member
member.personal_info() # 调用对象(member)来访问类属性(personal_info)
5.定义一个交通工具(Vehicle)的类,属性:速度(speed)、体积(size)等等。方法:移动move()、设置速度setSpeed(int speed)、加速speedUp()、减速speedDown()等等。实例化一个交通工具对象,通过方法初始化speed、size的值并且在相关方法中可以打印输出出来;另外调用加速减速的方法对速度进行改变。
class Vehicle(object):trans_type = 'SUV'def __init__(self,speed,*args):self.speed = speedself.size = argsdef show_info(self):print('所属类型:{},速度是:{}KM/h,体积是:{}'.format(self.trans_type,self.speed,self.size))def move(self):print('我已向前移动了60米')def set_speed(self):self.new_speed = '180km/h'def get_speed(self):print('我的时速为:{},设置的速度为:{}'.format(self.speed,self.new_speed))def seep_up(self):self.__new_speed = self.speed +10print('我的速度由{}kw/h,提升到了{}kw/h'.format(self.speed,self.__new_speed))def speed_down(self):self.__speed = self.speed - 15print('我的速度由{}km/h,下降到了{}km/h'.format(self.speed,self.__speed))def transport_identify(self):if type(Vehicle) == 'Vehicle':print('类型匹配')else:print('类型不匹配')car1 = Vehicle(110,4.45,1.12,2.75)
car1.show_info()
car1.move()
car1.set_speed()
car1.get_speed()
car1.seep_up()
car1.speed_down()
car1.transport_identify()
问题和解决办法:在做封装时遇到了为什么要封装这个问题,通过同学们一起讨论知道了,封装数据是为了保护隐私,封装方法:隔离复杂度,解决了封装的理解不够深入的问题。
心得体会:通过这次实验对以前学习有了更深层的理解,以前学C++时学习不够仔细好多的知识多没有学好,因此在学习python的面向对象的课程有一定的认识,学习类的应用和方法,对类的实参传递等一些列的知识有一定的认识,深深的体会到了,如果一种语言不支持继承,类就没有什么意义,在这次实验题学会了不少的知识。
更多推荐
python 实验五
发布评论