python面向对象练习

python面向对象练习

1、定义一个矩形类,求周长和面积

class jx:
    def __init__(self,c,k):
        self._c=c
        self._k=k

    def show(self):
        c=self._c
        k=self._k
        zc=(c+k)*2
        s=c*k
        print( f'周长为{zc},面积为{s}')
b=jx(3,2)
b.show()

2、自定义类,计算java,sql,web三门课的总成绩和平均分

class _avg:
    def __init__(self,java,sql,web):
        self._java=java
        self._sql=sql
        self._web=web

    def show(self):
        sum=self._java+self._sql+self._web
        Avg=sum/3
        print(f'java,web,sql三门课的平均成绩为{Avg}')

stu=_avg(90,80,79)
stu.show()

3、创建一个学生类,存储学生的姓名,python、c、java成绩,
然后定义一个列表存储5个学生,依次输入学生信息,
输出所有所有学生的信息,成绩以等级显示(90以上为A;80-90为B,60-80为C;60以下为D)

class stu:
    def __init__(self,name,java,python,c):
        self._name=name
        self.j=java
        self.c=c
        self.py=python
        lis=[self.j,self.py,self.c]
        self.lis=lis

    def level(self):
        for i in range(3):
            if self.lis[i] >=90:
                self.lis[i]='A'
            elif  self.lis[i]>80:
                self.lis[i]='B'
            elif  self.lis[i]>60:
                self.lis[i]='C'
        else:
                self.lis[i]='D'
        return self.lis

    def show(self):
        Lis=[self._name,self.level()]
        return Lis

stu1=stu('jack',90,80,90)
stu2=stu('candy',95,88,69)
stu3=stu('cindy',66,76,39)
stu4=stu('frank',61,87,44)
stu5=stu('tony',20,65,49)
lis1=[stu1.show(),stu2.show(),stu3.show(),stu4.show(),stu5.show()]
print(lis1)

4、继承练习
银行卡: 卡号、密码、姓名、余额
方法:取款
本行卡:
方法:取款、转账
其它行卡:
方法:取款(加收2元手续费)
实例化对象进行测试

class card:
    def __init__(self,no,pwd,name,blance):
        self.no=no
        self.pwd=pwd
        self.name=name
        self.blance=blance

    def withdraw(self,money):
        if self.blance>=money:
            self.blance-=money
        else:
            return -1

class localcard(card):
    def transform(self,money,tocard):
        if self.blance>=money:
            self.blance-=money
            tocard+=money
        else:
            return -1

class o_card(card):
    def withdraw(self,money):
        if self.blance+2 >= money:
            self.blance -= money+2
        else:
            return -1

lc=localcard(1235848,2222,'tony',2222)
r=lc.withdraw(2000)
if r==-1:
    print('余额不足')
else:
    print(f'转账成功,余额为{lc.blance}')

5、多态练习
主人Master:请好友吃饭,陪好友玩
好友Friend:
中国朋友:吃饺子,表演太极拳
美国朋友:吃披萨,踢足球
试用程序模拟

class friend:
    def eat(self):
        print('请吃饭,陪玩')

class manster:
    def treat(self,friend):
        friend.eat()

class chinese(friend):
    def eat(self):
        print('吃饺子,表演太极')

class amercan(friend):
    def eat(self):
        print('吃披萨,一起踢足球')

xiaowang=chinese()
Tony=amercan()
m=manster()
m.treat(xiaowang)
m.treat(Tony)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值