一、实验目的

1. 掌握:Python类的定义,class关键字,创建对象的方法,访问对象中的成员。

2. 掌握:私有成员与公有成员,数据成员与成员方法,类方法与静态方法,属性的定义与使用,混入机制。

3. 掌握:继承的作用与Python实现。

4. 掌握:构造函数 __ init __ (),析构函数__ del __ (),__ dd __ ()、__ mul __ ()、__ pow __ ()及其他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, sc_list):self.name = nameself.age = ageself.sc_list = sc_listdef get_name(self):return self.namedef get_age(self):return self.agedef get_course(self):return max(self.sc_list)zm = Student('zhangming', 20, [69, 88, 100])
print(zm.get_name(), zm.get_age(), zm.get_course())

2. 设计一个Circle(圆)类,包括圆心位置、半径、颜色等属性。编写构造方法和其他方法,计算周长和面积。请编写程序验证Circle(圆)类的功能。

import math
class Circle:def __init__(self, center, radius, color):self.center = centerself.radius = radiusself.color = colordef compute_perimeter(self):return round(2 * math.pi * self.radius, 2)def compute_area(self):return round(math.pi * self.radius**2, 2)circle = Circle((1, -1), 2, "blue")
print("圆的属性有:圆心位置为{},半径为{},颜色为{}".format(circle.center, circle.radius, circle.color))
print("此圆的周长为{},面积{}".format(circle.compute_perimeter(), circle.compute_area()))

3. 封装一个学生类,有姓名,有年龄,有性别,有英语成绩,数学成绩,语文成绩;求总分,平均分,以及打印输出学生的相关信息。

class Student:def __init__(self, name, age, sex, sc_list):self.name = nameself.age = ageself.sex = sexself.sc_list = sc_listdef compute_total(self):total = 0for i in range(len(self.sc_list)):total += self.sc_list[i]return totaldef compute_average(self):return round(self.compute_total()/len(self.sc_list), 2)s1 = Student('lisi', 20, 'male', [77, 88, 99])
print("姓名:{},年龄:{},性别:{},成绩:英语{} 数学{} 语文{}".format(s1.name, s1.age, s1.sex, s1.sc_list[0], s1.sc_list[1], s1.sc_list[2]))
print("该学生的总分为{},平均分为{}".format(s1.compute_total(), s1.compute_average()))

4. 设计一个Person类,属性有姓名、年龄、性别,创建方法personInfo,打印输出这个人的信息;创建Student类,继承Person类,属性有学院college,班级Group,重写父类PersonInfo方法,调用父类方法打印输出个人信息,将学生的学院、班级信息也打印输出出来。

class Person:def __init__(self, name, age, sex):self.name = nameself.age = ageself.sex = sexdef personinfo(self):print("姓名:{},年龄:{},性别:{}".format(self.name, self.age, self.sex))class Student(Person):def __init__(self, name, age, sex, Group, college):super().__init__(name, age, sex)self.Group = Groupself.college = collegedef personinfo(self):print("姓名:{} 年龄:{} 性别:{} 班级:{} 学院:{}".format(self.name, self.age, self.sex, self.Group, self.college))s1 = Person('liuer', 20, 'male')
s1.personinfo()
s2 = Student('liuer', 20, 'male', '21-1', 'software college')
s2.personinfo()

5. 定义一个交通工具(Vehicle)的类,属性:速度(speed)、体积(size)等等。方法:移动move()、设置速度setSpeed(int speed)、加速speedUp()、减速speedDown()等等。实例化一个交通工具对象,通过方法初始化speed、size的值并且在相关方法中可以打印输出出来;另外调用加速减速的方法对速度进行改变。

class Vehicle:def __init__(self, speed, size):self.speed = speedself.size = sizedef printinfo(self):print("此交通工具的速度为{}km/h,体积为{}m^3".format(self.speed, self.size))def setSpeed(self, sp):self.speed = spprint("Vehicle speed {}km/h".format(self.speed))def move(self):print("Igniting...")self.setSpeed(10)print("Set vehicle speed 10. Move forward.")def stop(self):self.setSpeed(0)print("Vehicle stop!")def speedUp(self, num):if self.speed + num >= 120:self.setSpeed(120)print("Speed reaches upper limit!")else:self.setSpeed(self.speed+num)def speedDown(self, num):if self.speed - num < 0:self.stop()else:self.setSpeed(self.speed-num)car = Vehicle(0, 8)
car.printinfo()
car.move()
car.setSpeed(50)
car.speedUp(20)
car.speedUp(60)
car.speedDown(20)
car.stop()

三、实验小结

本周题型针对的是类的使用,对于python的面向对象编程我还是有较大的不足。我目前只能运用最基本的构造和继承类的方法,而对于更深层次——灵活使用类方法和静态方法、析构函数等,还是有所欠缺,一般在解题的时候也都不会往那些方面去想。

python学习实验报告(第五周)相关推荐

  1. python学习实验报告(第一周)

    一.实验目的及要求 1. 使用Python语言编写简单程序设计题目: 2. 掌握:Python常用内置对象-常量与变量.数字类型.字符串: 3. 掌握:Python常用内置对象-列表.元组.字典.集合 ...

  2. python学习实验报告(第九周)

    一.实验目的 1. 理解tkinter标准库的用法. 2. 熟悉创建窗体和组件的方法. 3. 熟悉tkinter组件属性及其作用和设置方法. 4. 了解如何为tkinter组件绑定事件处理方法. 二. ...

  3. python学习实验报告(第三周)

    一.实验目的 1. 理解条件表达式与True/False的等价关系 2. 熟练运用常见选择结构 3. 熟练运用for循环和while循环 4. 理解带else子句的循环结构执行过程 5. 理解brea ...

  4. python学习实验报告(第十周)

    一.实验目的 1. 了解常用的HTML标签 2. 了解在网页中使用JavaScript代码的几种方式 3. 掌握Python标准库urllib的用法 4. 掌握Python扩展库scrapy的用法 5 ...

  5. python学习实验报告(第四周)

    一.实验目的 1. 掌握函数定义和调用的用法. 2. 掌握递归函数的执行过程. 3. 掌握位置参数.关键参数.默认值参数与长度可变参数的用法. 4. 理解函数调用时参数传递的序列解包用法. 5. 理解 ...

  6. 软件工程课程周学习进度报告——第五周

    所花时间:20 代码量:500左右 博客量:0 新知识: 百度API接口,画地铁图. 购买了云服务器和域名来玩,并部署完毕tomcat. 转载于:https://www.cnblogs.com/CCR ...

  7. python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...

    安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...

  8. 基于Kaggle心脏病数据集的数据分析和分类预测-StatisticalLearning统计学习实验报告

    基于Kaggle心脏病数据集的数据分析和分类预测-StatisticalLearning统计学习实验报告 一.实验准备 本数据来源于kaggle,包含14个维度,303个样本,具体的变量说明如下表所示 ...

  9. python上机实验报告读取文件_Python程序设计实验报告:实验八 文件

    安徽工程大学 Python程序设计 实验报告 班级 物流192姓名陶俊 学号3190505235 成绩 日期 2020.6.3 指导老师修宇 实验八 文件 [实验目的] 掌握读写文本文件或 CSV 文 ...

  10. python上机实验报告读取文件_Python程序设计实验报告八 : 文件

    安徽工程大学 Python程序设计 实验报告 班级 物流192 姓名凌剑涛 学号 3190505233成绩 日期2020.6.3 指导老师 修宇 实验八 文件 [实验目的] 掌握读写文本文件或CSV文 ...

最新文章

  1. ios计算机隐藏功能,7个iOS14隐藏功能,看完想立马更新,有你不知道的
  2. Linux用init命令关机、重启、切换模式
  3. Permission is only granted to system app
  4. SmsManager#sendTextMessage的BUG
  5. 【Linux基础 01】Linux 下的文件系统
  6. hibernate框架学习之数据模型-POJO
  7. Linux C 算法——排序
  8. 计算机网络(八)——web的工作原理
  9. 第007篇:易康(eCognition)中实现分类的继承
  10. 为什么mysql填不了数据库_求助,为何我的数据不能写入数据库
  11. php解压有密码的zip,linux下解压有密码的rar压缩包的方法
  12. 路由器温度测试软件,【美国网件 R8500 无线路由器产品测试】信号|速度|温度_摘要频道_什么值得买...
  13. C语言程序怎么读取亮度值,颜色空间RGB与 色调、饱和度、亮度(ESL)转换的完整C语言算法...
  14. oracle无法scott登陆,解决oracle用户scott无法登录问题,解锁即可
  15. git-svn使用教程
  16. 2022-2027年中国导航电子地图行业市场深度分析及投资战略规划报告
  17. 一个全网最详细的Python教程
  18. ijkplayer项目
  19. 单网口电脑安装openwrt软路由做单臂路由
  20. 2010十大最热门IT职位

热门文章

  1. ubuntu安装独显驱动(R7000P RTX2060)
  2. 思科 计算机网络 第一章测试考试答案
  3. 2017 谷歌 I/O大会
  4. 深入分析redis之rax底层原理,前缀树?
  5. 0504-android-云知声sdk使用
  6. QQ空间内容同步php网站,同步 Sablog 博客日志到 Qzone
  7. 开源crm系统VtigerCRM 7.3 保姆级安装教程
  8. 程序员的黑砖窑,东南亚博彩骗局详解
  9. EKMA 曲线及大气 O3 来源解析
  10. JPA-Specification 实现复杂查询