Python学习 第9章实战

文章介绍了Python中面向对象编程的实战示例,包括定义圆类计算面积和周长,创建学生类录入信息,使用乐器类实现弹奏,以及设计出租车和家用轿车类的继承关系。
摘要由CSDN通过智能技术生成

实战一:定义一个圆的类计算面积和周长

需求:定义一个圆类—Circle,提供一个属性r(半径),提供两个方法:

计算圆的面积get_area(self)和计算圆的周长get_perimeter(self),通过两个方法计算圆的周长和面积并且对计算结果进行输出,最后从键盘录入半径,创建圆类的对象,并调用计算面积和周长的方法输出面积和周长。

class Circle:
    def __init__(self,r):
        self.r=r

    #计算面积的方法
    def get_area(self):
        # return 3.14*self.r*self.r
        return 3.14*pow(self.r,2)

    #计算财长的方法
    def get_perimeter(self):
        return  2*3.14*self.r

r=eval(input('请输入圆的半径:'))
c=Circle(r)

area=c.get_area()
perimeter=c.get_perimeter()
print('圆的面积为:',area)
print('圆的财长为:',perimeter)

实战二:定义学生类录入5个学生信息存储到列表中

需求:定义学生类Student,包含姓名,年龄,性别,分数四个属性,提供一个用于学员信息输出的方法info(self)。编写测试代码,使用循环录入5位学生的信息,由于录入的学生信息中间使用“#”进行分隔,所以需要使用字符串的split()方法,进行劈分,使用劈分的信息创建学生对象,使用列表存储学生信息,最后使用循环遍历列表,调象的info()方法输出学员信息。

class Student:
    def __init__(self,name,age,gender,score):
        self.name=name
        self.age=age
        self.gender=gender
        self.score=score

    def info(self):
        print(self.name,self.age,self.gender,self.score)

print('请输入五位学生信息:(姓名#年龄#性别#成绩')
lst=[]
for i in range(1,6):
    s=input(f'请输入第{i}位学生信息及成绩')
    s_lst=s.split('#')
    #创建学生对象
    stu=Student(s_lst[0],s_lst[1],s_lst[2],s_lst[3])
    lst.append(stu)

for item in lst:
    item.info()

实战三:使用面向对象思根实现乐器弹奏

需求:乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。定义乐器类Instrument,包括方法make_sound()定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin,定义一个函数可以弹奏各种乐器play(instrument),测试给乐手不同的乐器让他弹奏

class Instrument():
    def make_sound(self):
        pass

class Erhu(Instrument):
    def make_sound(self):
        print('二胡在弹奏')


class Piano(Instrument):
    def make_sound(self):
        print('钢琴在弹奏')

class Violin(Instrument):
    def make_sound(self):
        print('小提琴在弹奏')

def Play(obj):
    obj.make_sound()

er=Erhu()
piano=Piano()
vio=Violin()
Play(er)
Play(piano)
Play(vio)

1.实战四:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

出租车类:

        属性包括:车型,车牌,所属出租公司;方法包括:启动,停止

家用轿车类:

        属性包括:车型,车牌,车主姓名;方法包括:启动,停止

需求:

  1. 分析出租车和家用轿车的公共成员,提取出父类一汽车类
  2. 利用继承机制,实现出租车类和家用轿车类
  3. 最后,分别测试出租车类和家用轿车类对象的相关方法
class Car():
    def __init__(self,type,no):
        self.type=type
        self.no=no

    def Start(self):
        print('我是车,我能启动。')
    def Stop(self):
        print('我是车,我能停止。')


class Taxi(Car):
    def __init__(self,type,no,company):
        super().__init__(type,no)
        self.company=company

    def Start(self):
        print('乘客您好!')
        print(f'我是{self.company}出租车公司的,我的车牌是:{self.no},您要去哪里?')

    def Stop(self):
        print('目的地到了,请您扫码付款,欢迎下次乘坐')

class FamilyCar(Car):
    def __init__(self,type,no,name):
        super().__init__(type,no)
        self.name=name

    def Start(self):
        print(f'我是{self.name},我的轿车我做主')

    def Stop(self):
        print('目的地到了,我们去玩吧')

taxi=Taxi('上海大众','京B88888','长城')
taxi.Start()
taxi.Stop()
print('-'*40)
family_car=FamilyCar('广汽丰田','京A666666','武大郎')
family_car.Start()
family_car.Stop()

注:本文中的内容及实例均出自@Python_子木的视频

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值