详解Python面向对象程序设计的简单应用
Admin 2022-09-06 群英技术资讯 1250 次浏览
这篇文章给大家分享的是详解Python面向对象程序设计的简单应用。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。1. 设计一个圆类,包括圆心位置、半径、颜色等属性。编写构造方法, 计算周长和面积。
import math
class 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 的类,这个类包括:
getRoot1 和 getRoot2 的方法返回等式的两个根, 如果判别式为负,这些方法返回0。import math
class 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 random
class 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))
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python的循环语句是很基础的内容,这篇文章主要给大家介绍python中if循环语句的使用,下面给大家分享python的if循环语句写菱形金字塔和九九乘法表代码,对新手学习和理解python的if循环语句有一定的帮助,有需要的朋友就往下看吧。
1、首先用pip来安装pymysqlpipinstallmysql报错:cryptographyrequiressetuptools18 5ornewer,pleaseupgradetoanewversion2、我想到的是更
在python语言中,编写代码一行写不下,可以使用\连接多行代码;或者使用小括号将代码片段括起来,或者放在三个单引号内,都能实现换行。
这篇文章主要为大家介绍了Python中的字符串格式化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
我们知道Python的功能是很强大的,能够实现多种管理系统,这篇就给大家分享用python怎样实现学生选课系统,下文有详细的实现过程及代码,感兴趣的朋友可以参考看看,接下来我们一起来了解一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008