Python面向对象的程序设计详情 面向对象的程序设计在Python中具有非常重要的地位

这篇文章主要介绍了Python面向对象的程序设计详情,面向对象的程序设计在Python中具有非常重要的地位,熟练的使用面向对象编程能够为我们的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.piself.r2
            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©)
        print(‘圆面积为:{:.2f}’.format(S))

  2. 设计一个描述自由落体运动的类,要求能获得任意时刻的速度及位移,并进行测试。已知重力加速度为 9.8m/s。
    class Free:
        def init(self,t): 
            self.t = t
        def getv(self): #速度函数
            v=9.8self.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 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 -(4self.aself.c)
        return d
    def getRoot1(self):
        if self.getDiscriminant1()>=0:
            x1=(-self.b+math.sqrt(self.getDiscriminant1()))/2self.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())

  1. 设计一个二维向量类,实现向量的加法、减法及向量与标量的乘法和除法运算,其中要求输入是元组。
    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())
  2. 设计一个课程类,包括课程编号、课程名称、任课教师、上课地点 等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法。对于新手小白想更轻松的学好python提升,python爬虫,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):762459510 【教程/工具/方法/解疑】
    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()
  3. 设计一个整形数组的封装类,要求实现下列功能:

显示全部数组数据
显示从某位置开始的一段连续数组数据。
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))

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值