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

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=Noneage: int=Nonesex: str=Nonedef __init__(self,name: str,age: int,sex: str):self.name=nameself.age=ageself.sex=sexdef print(self):print("name:" + self.name)print("age:" + str(self.age))print("sex:" + self.sex)class Teacher(Person):title=Nonequality=Nonesalary=Noneprize=Nonedef __init__(self,person:Person,title:str,quality:str,salary:int,prize:int):super().__init__(person.name,person.age,person.sex)self.title=titleself.quality=qualityself.prize=prizeself.salary=salarydef 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=Noney:int=Nonedef __init__(self,x:int,y:int):self.x=xself.y=ydef getX(self)->int:return self.xdef getY(self)->int:return self.ydef getDistance(self,p)->float:return ((p.x-self.x)**2+(p.y-self.y)**2)**0.5point1 = 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.8v0 = 0t = 0s = 0v = 0def __init__(self, v0, t):self.v0 = v0self.t = tself.s=v0*t+1/2*self.g*t**2self.v=v0+self.g*tdef get_s(self):return self.sdef get_v(self):return self.vdef __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.mzph.cn/news/118972.shtml

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

相关文章

android开发使用OkHttp自带的WebSocket实现IM功能

一、背景 android app开发经常会有IM需求,很多新手不晓得如何入手,难点在于通讯不中断。其实android发展到今天,很多技术都很完善,有很多类似框架可以实现。例如有:okhttp自带的websocket框架、easysocket等等。本文主…

如何做一个无符号数识别程序

1.状态分析 我们可以把无符号数分为:整数,带小数,带指数部分三种形式。以此构建一个DFA。首先需识别输入是整数还是小数点,若是整数部分输入然后还要再循环识别一次是否有小数点,最后识别是否有指数部分,指…

Spring学习笔记—JDK动态代理

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Spring专栏 ✨特色专栏: M…

Redis -- 基础知识2

1.Redis客户端介绍 1.基础介绍 Redis是一种客户端-服务器结构的程序,通过网络进行互动 客户端的多种形态 1.自带了命令行客户端:redis-cil 2.图形化界面的客户端:依赖windows系统,连接服务器有诸多限制,不建议使用 3.基…

打印机连接网络后怎么安装驱动?

打印机在我们办公和生活中算是比较常见的设备,特别是在上班时需要时常打印各种文件,但是有时电脑上的打印机也会有无法打印的问题,或者新买的打印机需要先安装驱动才能正常打印的。 那么这个时候我们需要先检查电脑上的打印机是否有安装驱动&…

正点原子嵌入式linux驱动开发——异步通知

上一篇笔记中使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过poll函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知,报告自己可以访问,然后应用程序再从驱动程序中…

LCR 146. 螺旋遍历二维数组

LCR 146. 螺旋遍历二维数组 原题链接:完成情况:解题思路:参考代码: 原题链接: LCR 146. 螺旋遍历二维数组 https://leetcode.cn/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/description/ 完成情况: 解…

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

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

网络安全保险行业面临的挑战与变革

保险业内大多数资产类别的数据可以追溯到几个世纪以前;然而,网络安全保险业仍处于初级阶段。由于勒索软件攻击、高度复杂的黑客和昂贵的数据泄漏事件不断增加,许多网络安全保险提供商开始感到害怕继续承保更多业务。 保险行业 根据最近的路…

【方法】如何给PDF文件添加“打开密码”?

PDF文件可以在线浏览,但如果想要给文件添加“打开密码”,就需要用到软件工具,下面小编分享两种常用的工具,小伙伴们可以根据需要选择。 工具一:PDF编辑器 PDF阅读器一般是没有设置密码的功能模块,PDF编辑器…

python自动化测试(二):xpath获取元素

目录 前置代码 一、什么是xpath方式 二、通过xpath 单组属性名属性值 的方式进行元素定位 三、通过xpath的多组属性进行元素的定位 四、通过xpath文本值的方式进行元素定位 五、通过模糊的文本值方式进行元素定位 前置代码 # codingutf-8 from selenium import webdrive…

python树结构包treelib入门及其计算应用

树是计算机科学中重要的数据结构。例如决策树等机器学习算法设计、文件系统索引等。创建treelib包是为了在Python中提供树数据结构的有效实现。 Treelib的主要特点包括: 节点搜索的高效操作。支持常见的树操作,如遍历、插入、删除、节点移动、浅/深复制…

使用Go语言测试Redis性能

1. 前言 Redis是一个高性能的键值存储数据库,常用于缓存、队列、排行榜等场景。在实际应用中,我们需要对Redis的性能进行测试,以便了解其在不同场景下的表现。本文将介绍如何使用Go语言测试Redis的性能。 2. 环境准备 在开始测试前&#x…

如何让家居设备快速通过Matter认证?移远通信为您带来标准回答

2022年10月,Matter协议正式面向全球发布;2023年10月23日,Matter 1.2最新版本正式发布。在Matter发布至今的时日里,众多头部厂商纷纷加速开发新产品,只为更快抢占市场先机,以“先发者”身份入局新赛道&#…

数据库安全定义以及重要性简单讲解

数据库安全定义 数据库安全指的是对数据库进行保护,以确保其数据的机密性、完整性和可用性,并防止非法访问、篡改、破坏、泄露等安全威胁。一般包括访问控制、数据加密、审计和监控、数据备份、漏洞修补、网络安全等方面。 数据库安全的重要性 1、数据…

C++ 学习 之 名字空间 namespace

必须在模块里面 extern 声明 在一个 cpp 文件中, 一个namespace 可以多次定义,最后合并,使用 using namespace A 这种引入方式的话,使用的时候可以用所有 A 中的数据 多个 cpp 文件的话,不能会自动合并相同的 名字空…

HackTheBox - Starting Point -- Tier 0 ---Preignition

文章目录 一 题目二 实验过程 一 题目 Tags Web、Custom Applications、Apache、Reconnaissance、Web Site Structure Discovery、Default Credentials译文:Web、定制应用程序、Apache、侦察、网站结构发现、默认凭证Connect To attack the target machine, you …

论文-分布式-分布式计算|容错-分布式控制下的自稳定系统

参考文献Self-stabilizing systems in spite of distributed control可以把松散耦合的 循环序列过程 间的同步任务,看成是要保持一个这样的不变性:“系统要处于一种合法状态”因此每个进程在运行每一个可能会改变不变性的步骤之前都要先检查一下是可以执…

人机环境系统智能是东方与西方智能思想的融合

人机环境系统的思想是一种综合性的思想,它融合了东方思想和西方思想的元素。在东方文化中,人类与自然环境有着密切的联系,强调人类与自然环境的和谐共生关系。而在西方文化中,科技和机器的应用越来越广泛,对人类社会和…

21.2 Python 使用Scapy实现端口探测

Scapy 是一款使用纯Python编写的跨平台网络数据包操控工具,它能够处理和嗅探各种网络数据包。能够很容易的创建,发送,捕获,分析和操作网络数据包,包括TCP,UDP,ICMP等协议,此外它还提…