Python实验项目4 :面对对象程序设计

news2024/12/27 10:46:40

1:运行下面的程序,回答问题。

(1)说明程序的执行过程;

2)程序运行结果是什么?

# (1)说明程序的执行过程;
# (2)程序运行结果是什么?
# demo1101.py
class FatherClass:
    value = 100  # 类属性
    def function1(self):
        print("self.value=", self.value)
        print("FatherClass.value=", FatherClass.value)

class ChildClass(FatherClass):
    value=200 #类属性
    def function1(self):
        super().function1()
        print("super().value=",super().value)
        print("self.value=",self.value)
        print("ChildClass.value=", ChildClass.value)

#主控程序
cc=ChildClass()
cc.function1()
print("用对象访问,cc.value=",cc.value)
print("用类访问,ChildClass.value=",ChildClass.value)
 (1)使用 super()函数调用父类中的属性和方法的程序。 使用 super().function1()语句,调用父类的 function1()方法,此时父类尚未初始化, 第 5 self.value 的值为子类的 value 200。父类的 function1()方法执行后返回,在子类 ChildClass 中继承执行第 12 行,输出父类的 value 值和子类的 value 值。第 14 行用类名 ChildClass 访问子类自己的 value 值。 最后两行分别用对象名和类名访问子类的 value 值。
(2)运行结果如下:

2:编写程序,重点理解构造方法在继承中的运用。

要求:编写 Person 类,其具有 nameagesex 等属性。继承于 Person 类的 Teacher 类,具 有 titlequalitysalaryprize 等属性。显示这些属性,并计算 salaryprize 之和。

# 要求:编写 Person 类,其具有 name、age、sex 等属性。
# 继承于 Person 类的 Teacher 类,具 有 title、quality、salary、prize 等属性。
# 显示这些属性,并计算 salary、prize 之和。
class Person:
    name: str=None
    age: int=None
    sex: str=None

    def __init__(self,name: str,age: int,sex: str):
        self.name=name
        self.age=age
        self.sex=sex

    def print(self):
        print("name:" + self.name)
        print("age:" + str(self.age))
        print("sex:" + self.sex)

class Teacher(Person):
    title=None
    quality=None
    salary=None
    prize=None
    def __init__(self,person:Person,title:str,quality:str,salary:int,prize:int):
        super().__init__(person.name,person.age,person.sex)
        self.title=title
        self.quality=quality
        self.prize=prize
        self.salary=salary

    def print(self): # 同名函数会继承父类的执行语句并且加上子类独有的语句
        super().print()
        print("title:"+self.title)
        print("quality:"+self.quality)
        print("salary:"+str(self.salary))
        print("prize:"+str(self.prize))
    def sum(self):
        return self.salary+self.prize
# 创建对象
person = Person("周杰伦",18,"男")
t=Teacher(person,"音乐系","流行音乐",20000,2000)
t.print()
print("sum:",t.sum())
 执行结果:

3:设计并测试一个表示一个点的 MyPoint 类。

要求:该类包括以下属性:

x:点的横坐标。

y:点的纵坐标。

包括如下方法:

__init__() (self, x, y):构造方法,创建对象的同时为属性 xy 赋初值。

getX():获得点的横坐标。

getY():获得点的纵坐标。

getDdistance (self,p):返回当前点与点 p 之间的距离。

# 3:设计并测试一个表示一个点的 MyPoint 类。
# 要求:该类包括以下属性:
# x:点的横坐标。
# y:点的纵坐标。
# 包括如下方法:
# __init__() (self, x, y):构造方法,创建对象的同时为属性 x、y 赋初值。
# getX():获得点的横坐标。
# getY():获得点的纵坐标。
# getDdistance (self,p):返回当前点与点 p 之间的距离。
class MyPoint:
    x:int=None
    y:int=None
    def __init__(self,x:int,y:int):
        self.x=x
        self.y=y
    def getX(self)->int:
        return self.x
    def getY(self)->int:
        return self.y
    def getDistance(self,p)->float:
        return ((p.x-self.x)**2+(p.y-self.y)**2)**0.5


point1 = MyPoint(0, 0)
point2= MyPoint(3, 4)
print(point1.getDistance(point2))
执行结果:

 

4:设计一个描述自由落体运动的类,要求能获得时刻的速度和位移,并进行测试。已知重力加速度为9.8m/s。 

 

# 4:设计一个描述自由落体运动的类,要求能获得时刻的速度和位移,并进行测试。已知重力加速度为9.8m/s。
# v=v0+gt s=v0t+1/2gt2
class FreeFall:
    g = 9.8
    v0 = 0
    t = 0
    s = 0
    v = 0
    def __init__(self, v0, t):
        self.v0 = v0
        self.t = t
        self.s=v0*t+1/2*self.g*t**2
        self.v=v0+self.g*t
    def get_s(self):
        return self.s
    def get_v(self):
        return self.v
    def __str__(self):
        return "s="+str(self.s)+",v="+str(self.v)


v0= eval(input("请输入初速度:"))
t = eval(input("请输入时间:"))
fall = FreeFall(v0,t)
print(f"该自由落体运动经过{t}的时间的位移为:",fall.get_s())
print(f"该自由落体运动经过{t}的时间的速度为:",fall.get_v())
print(fall.__str__())
 执行结果:

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python在不同场景下的并发编程方案选择

目录 一、多线程 二、多进程 三、异步IO 四、优缺点分析 五、注意事项 总结 并发编程是软件开发中的重要一环,它允许程序同时处理多个任务,提高程序的运行效率和响应速度。Python作为一种流行的编程语言,提供了多种并发编程方案。 一、…

source insight 使用过程中问题点总结

1. //1 //2 不现实大小的注释。选中Special comment styles即可。

vector详解

迭代器 vector维护的是一个连续线性空间。普通指针可以满足条件作为vector的迭代器。 template <typename T, typename Allocalloc> class vector { public: using value_type T; using iterator value_type*; }; vector::iterator //int* vector::iterator //char* …

HFP协议分析

HFP 全称为Hands-Free Profile&#xff0c;通俗的说就是蓝牙电话协议&#xff0c;可以通过指定好的AT command来控制通话的接听、挂断、拒接等 看协议的一些约定格式 在HFP协议文档里面有一个约定&#xff0c;这里贴出来&#xff0c;每种不同的标识代表不同的意思&#xff0c…

2023年中国高尔夫用品产值、市场规模及细分产品现状分析[图]

高尔夫用品市场是指个人的高尔夫用品&#xff0c;主要包括高尔夫球具、高尔夫球包、高尔夫用球、高尔夫服装、高尔夫鞋、高尔夫帽子、高尔夫手套及相关配件等方面。 随着高尔夫产业的逐步兴起&#xff0c;高尔夫运动受到了越来越多人们的青睐&#xff0c;与此同时&#xff0c;也…

Loop Copilot:AI驱动,小白也能自己生成音乐?

01 项目介绍 Loop Copilot是一个使用自然语言生成音乐的系统。它不仅允许你使用自然语言来生成你想要的音乐风格、节奏或旋律&#xff0c;还支持通过多轮对话对已生成的音乐进行进一步的编辑和修改。包括对生成的音乐进行编辑修改、添加或删除乐器、加入音效等。 02 工作流程…

0027Java程序设计-房屋出租管理系统

文章目录 摘 要目 录系统设计开发环境 摘 要 随着我国市场经济的快速发展和人们生活水平的不断提高&#xff0c;简单的房屋出租服务已经不能满足人们的需求。如何利用先进的管理手段&#xff0c;提高房屋出租的管理水平&#xff0c;是当今社会所面临的一个重要课题。 本文采用…

vue重修之Vuex【上部】

文章目录 版权声明Vuex 概述Vuex 的主要概念和组件 vuex的使用状态 &#xff08;state&#xff09;Vuex特点 访问vuex中数据$store访问mapState辅助函数访问 开启严格模式及Vuex的单项数据流突变&#xff08;mutations&#xff09;mutations初识带参 mutations辅助函数 mapMuta…

Redis快速上手篇(三)(事务+Idea的连接和使用)

Redis事务 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的 所有命令都会序列化&#xff0c;按顺序地串行化执行而不会被其它命令插入&#xff0c;不许加塞。 单独的隔离的操作 官网说明 https://redis.io/docs/interact/transactions/ MULTI、EXEC、…

数据结构,及分类(存储分类、逻辑分类)介绍

一、数据结构&#xff1a; 数据是软件开发的核心。在软件开发过程中基本上就是对数据的新增、删除、修改、查看的操作。 如何合理存储数据&#xff0c;如何有效提升数据操作开发效率&#xff0c;都是软件开发中的重中之重。使用合理的数据结构是非常重要的。 1.1简介&#xff…

【Leetcode】【每日一题】【简单】2520. 统计能整除数字的位数

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/count-the-digits-that-divide-a…

分享53个ASP.NET源码总有一个是你想要的

分享53个ASP.NET源码总有一个是你想要的 链接&#xff1a;https://pan.baidu.com/s/1xvqgPHSty70VGlQHoy9NYw?pwd8888 提取码&#xff1a;8888 项目名称 ASP.Net 4.5 论坛源码&#xff0c;支持多数据库 Asp.Net Core 3.x博客同步应用案例 ASP.NET Core MVC SqlSugerCore…

安防监控项目---概要

文章目录 前言一、项目需求二、环境介绍三、关键点四、主框架分析总结 前言 各位小伙伴&#xff0c;在蛰伏了将近有半年的时间又要和大家分享新的知识了&#xff0c;这次和大家分享的是一个项目&#xff0c;因此呢我准备分项目阶段去和大家分享&#xff0c;希望大家都能够在每…

如何满足TIKTOK直播企业四大网络需求,轻松实现直播无卡顿?

说到企业海外直播&#xff0c;大家脑海里一下就想会想到当下爆火的TIKTOK平台&#xff0c;而随着TIKTOK在全球范围大面积铺开推广&#xff0c;不同国家不同市场的活跃用户数纷纷上涨&#xff0c;让更多的电商企业选择在TIKTOK上进行布局获得商机。 对于已布局TIKTOK直播或者待布…

【Linux】开发工具

目录 Linux编译器-gcc/g使用执行命令&#xff1a;我们的.o和库是如何链接的? make/Makefile依赖关系、依赖方法 Linux编译器-gcc/g使用 gcc只能编译c语言&#xff0c;g可以编译c语言也可以编译g 背景知识&#xff1a; 预处理&#xff08;进行宏替换)编译&#xff08;生成汇编)…

我的Windows10下的WSL的使用经历

微软每年都会举办Build开发者大会&#xff0c;近年来越来越受关注的Linux 子系统Windows Subsystem for Linux&#xff08;WSL&#xff09;已经很完善了&#xff0c;我抱着体验一把的心态&#xff0c;也来使用一下这个功能。 各位新手Linux朋友们&#xff0c;有没有想过怎么在…

ubuntu18.4(后改为20.4)部署chatglm2并进行基于 P-Tuning v2 的微调

下载驱动 NVIDIA显卡驱动官方下载地址 下载好对应驱动并放在某个目录下&#xff0c; 在Linux系统中安装NVIDIA显卡驱动前,建议先卸载Linux系统自带的显卡驱动nouveau。 禁用nouveau 首先&#xff0c;编辑黑名单配置。 vim /etc/modprobe.d/blacklist.conf 在文件的最后添加…

Python实现【亚马逊商品】数据采集

亚马逊作为最大的跨境电商平台之一&#xff0c;其产品一直备受关注&#xff0c;因此采集亚马逊产品功能也是部分卖家所需的&#xff0c;下面我们来了解一下采集亚马逊产品是如何操作的。 l 采集网站 【场景描述】采集亚马逊搜索关键词出来的商品信息。 【入口网址】https://…

MES系统在工业生产中的重要性与功能

MES系统在工业生产中的重要性体现在它的信息化管理能力。传统的生产管理方法主要依靠人工操作和纸质文档记录&#xff0c;效率低下且容易出错。而MES系统利用计算机技术和数据库管理&#xff0c;能够实时记录和监控生产数据&#xff0c;提供准确的生产情况分析报告&#xff0c;…