python 实验五

编程入门 行业动态 更新时间:2024-10-21 20:36:26

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=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 实验五

本文发布于:2024-03-06 07:27:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714725.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!