python 面向对象练习

# 1、定义一个矩形类,求周长和面积
class Rectangle:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def area(self):
        return self.x * self.y

    def perimeter(self):
        return (self.x + self.y) * 2

# 2、自定义类,计算java,sql,web三门课的总成绩和平均分
class Grade:
    def __init__(self, java, sql, web):
        self.java = java
        self.sql = sql
        self.web = web

    def sum(self):
        return self.java + self.web + self.sql

    def avg(self):
        return (self.java + self.web + self.sql) / 3

# 3、创建一个学生类,存储学生的姓名,python、c、java成绩,
# 然后定义一个列表存储5个学生,依次输入学生信息,
class Student:
    def __init__(self, stu):
        self.stu = stu

    def output(self):
        print(self.stu[0], "\t", end="")
        for i in range(1, 4):
            print(decide(self.stu[i]), "\t", end="")
        print()


def decide(a):
    if a > 90:
        return "A"
    elif a > 80:
        return "B"
    elif a > 60:
        return "C"
    else:
        return "D"


# stu = []
# print(stu, len(stu))
# for i in range(5):
#     list_1 = [input("名字"), float(input("\npython成绩")), float(input("\nc成绩")), float(input("\njava成绩"))]
#     stu.append(list_1)
#     list_1 = []
# for i in range(5):
#     a = Student(stu=stu[0])
#     a.output()

# 4、继承练习
# 银行卡: 卡号、密码、姓名、余额
# 方法:取款
class bank_card:
    def __init__(self, card_name, passed, name):
        self.card_name = card_name
        self.passed = passed
        self.name = name
        self.balance = 10000

    def withdrawal(self, money):
        pass


class self_bank(bank_card):
    def withdrawal(self, money):
        if money > self.balance:
            print("余额不足")
        else:
            self.balance = self.balance - money
            print(f"余额为:{self.balance}")

    def transfer(self):
        trans = float(input("转账金额:"))
        trans_card = int(input("卡号"))
        if trans > self.balance:
            print("余额不足")
        else:
        	self.balance = self.balance - money
            print(f"f以向{trans_card}转账成功")


# 本行卡:
# 方法:取款、转账
class other_bank(bank_card):
    def withdrawal(self, money):
        if money + 2 > self.balance:
            print("余额不足")
        else:
            self.balance = self.balance - money - 2
            print(f"余额为:{self.balance}")


# 其它行卡:
# 方法:取款(加收2元手续费)

# 5、多态练习
class Friend:
    def eat(self):
        pass

    def play(self):
        pass


class China_Friend(Friend):
    def eat(self):
        print(f"吃饺子")

    def play(self):
        # print("kkkk")
        print("表演太极拳")


class Foreign_Friend(Friend):
    def eat(self):
        print(f" 吃披萨")

    def play(self):
        print(f"踢足球")


class Master:
    def eat(self, friend):
        friend.eat()

    def play(self, friend):
        friend.play()

# 主人Master:请好友吃饭,陪好友玩
# 好友Friend:
# 中国朋友:吃饺子,表演太极拳
# 美国朋友:吃披萨,踢足球
# 试用程序模拟
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值