Python面向对象中程序设计的示例分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下Python面向对象中程序设计的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 设计一个圆类
千家信息网最后更新 2025年01月20日Python面向对象中程序设计的示例分析
小编给大家分享一下Python面向对象中程序设计的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1. 设计一个圆类,包括圆心位置、半径、颜色等属性。编写构造方法, 计算周长和面积。
import mathclass Circle: def __init__(self,o,r,colour): self.o = o self.r = r self.colour = colour def length(self): #周长 C = math.pi*self.r*2 return C def area(self): #面积 S = math.pi*self.r**2 return S if __name__ == "__main__": r=eval(input("请输入半径:")) circle = Circle((0,0),r,'blue') #坐标、半径、颜色 C = circle.length() S = circle.area() print('圆周长为:{:.2f}'.format(C)) print('圆面积为:{:.2f}'.format(S))
2. 设计一个描述自由落体运动的类,要求能获得任意时刻的速度及位移,并进行测试。已知重力加速度为 9.8m/s。
class Free: def __init__(self,t): self.t = t def getv(self): #速度函数 v=9.8*self.t return v def getx(self): #位移函数 x=0.5*9.8*self.t**2 return x if __name__ == "__main__": t=eval(input("请输入时刻t:")) f=Free(t) #调用 print("t={} 时刻的".format(t),end='') print("速度为:{:.2f}".format(f.getv())) print("t={} 时刻的".format(t),end='') print("位移为:{:.2f}".format(f.getx()))
3. 为二次方程式 ax²+bx+c=0 设计一个名为 Equation 的类,这个类包括:
代表 3 个系数的成员变量 a、b、c;
一个参数为 a、b、c 的构造方法;
一个名为 getDiscriminant1 的方法返回判别式的值;
一个名为
getRoot1
和getRoot2
的方法返回等式的两个根, 如果判别式为负,这些方法返回0。
import mathclass Equation: def __init__(self,a,b,c): self.a = a self.b = b self.c = c def getDiscriminant1(self): #判别式 d=(self.b)**2 -(4*self.a*self.c) return d def getRoot1(self): if self.getDiscriminant1()>=0: x1=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a return x1 else: return 0 def getRoot2(self): if self.getDiscriminant1()>=0: x2=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a return x2 else: return 0 if __name__ == "__main__": a=eval(input("请输入系数a:")) b=eval(input("请输入系数b:")) c=eval(input("请输入系数c:")) f=Equation(a,b,c) print("判别式:",f.getDiscriminant1()) print("根1:",f.getRoot1()) print("根2:",f.getRoot2())
4. 设计一个二维向量类,实现向量的加法、减法及向量与标量的乘法和除法运算,其中要求输入是元组。
class Vector: def __init__(self,a,b): self.a = a self.b = b def jia(self): c1 = (self.a[0] + self.b[0]) c2 = (self.a[1] + self.b[1]) return (c1,c2) def jian(self): c1 = (self.a[0] - self.b[0]) c2 = (self.a[1] - self.b[1]) return (c1,c2) def diancheng(self): c1 = (self.a[0] * self.b[0]) c2 = (self.a[1] * self.b[1]) return c1+c2 #向量无除法 if __name__ == "__main__": a=eval(input("请输入向量a:")) b=eval(input("请输入向量b:")) f=Vector(a,b) print(" 加:",f.jia()) print(" 减:",f.jian()) print("点乘:",f.diancheng())
5. 设计一个课程类,包括课程编号、课程名称、任课教师、上课地点 等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法。
class Course: def __init__(self,Cno,Cname,teacher,local): self.Cno = Cno self.Cname = Cname self.teacher = teacher self.__local =local #把上课地点变量设为私有的 def information(self): print("课程编号:",self.Cno) print("课程名称:",self.Cname) print("任课教师:",self.teacher) print("上课地点:",self.__local) if __name__ == "__main__": f=Course('NO.','what','who','where') f.information()
6. 设计一个整形数组的封装类,要求实现下列功能:
显示全部数组数据
显示从某位置开始的一段连续数组数据。
import randomclass List: def __init__(self,lis): self.__lis=lis def quanbu(self): #全部数组数据 return self.__lis def bufen(self,id): #从部分位置开始的一段连续数组数据 return self.__lis[id:] f=List([random.randint(1,51) for i in range(20)]) #设置数组为20个1-50的随机数组合print("显示全部数组数据:",f.quanbu()) random_index = random.randint(0,21) #随机选取从某一位置开始的索引号print("显示从<第{}>位置开始的一段连续数组数据:".format(random_index),f.bufen(random_index))
以上是"Python面向对象中程序设计的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
设计
数组
输入
方法
向量
数据
课程
位置
判别式
地点
时刻
系数
判别
半径
变量
篇文章
速度
面积
对象
示例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库给表名取别名
数据库的数据项是单元格
重庆应用软件开发收费报价表
防网络安全
我国国家网络安全现状
智慧九星创客模式系统软件开发
华为5g产品软件开发
网络安全主题教育文案
网络技术及应用期末题
研发部门网络安全管理制度
留学生网络安全
数据库删除的数据可以找回吗
虞城软件开发系统
天津打车软件开发
后台服务器怎么开通
加大舆情监测守好网络安全
数据库最新技术基础
云南校驿网络技术有限公司
防伪验证服务器
海南应用软件开发服务商
芳茂山服务器区附近的港
软件开发进技术服务费
不属于数据库安全性控制的有
软件开发培训费用
2021国家网络安全主题峰会
php邮件服务器程序
成都市高新区网络安全
原神深渊数据库怎么进
加大舆情监测守好网络安全
服务器两个网口一个内网一个外网