[Python]面向对象编程练习

面向对象编程练习

  1. 设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:
    总利息=贷款金额*利率
    每月还款金额 = (贷款金额+总利息)/贷款年限
    贷款年限不同利率也不同,这里规定只有如表8-2所示的3种年限、利率。
    在这里插入图片描述
年限利率
3年(36个月)6.03%
5年(60个月)6.12%
20年(240个月)4.39%
class LoanCaculator():
    def __init__(self, loan, time):
        self.loan = loan
        if time == "1":
            self.time = 3
        elif time == "2":
            self.time = 5
        elif time == "3":
            self.time = 20
    def get_total_interests(self):
        return self.loan * self.get_interests_rate()
    def get_interests_rate(self):
        if self.time == 3:
            return 0.0603
        elif self.time == 5:
            return 0.0612
        elif self.time == 20:
            return 0.0639
    def get_monthly_payment(self):
        return (self.loan + self.get_total_interests()) / (self.time * 12)

loan = int(input("请输入贷款金额:"))
time = input("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)")
loan_caculate = LoanCaculator(loan, time)
print("月供为:%f" % loan_caculate.get_monthly_payment())                               
  1. 设计Bird、fish类,都继承自Animal类,实现其方法print_info(),输出信息。
    在这里插入图片描述
class Animal:
    def __init__(self,age):
        self.age = age
    def print_info(self):
        print(f'我今年{self.age}岁了!')

class bird(Animal):
    def __init__(self,age,type):
        self.type = type
        super().__init__(age)     
    def print_info(self):
        print(f'我是一只{self.type}的鸟')
        super().print_info()

class fish(Animal):
    def __init__(self,age,type):
        self.type = type
        super().__init__(age)

    def print_info(self):
        print(f'我是一只{self.type}的鱼')
        super().print_info()

Bird = bird(4,"红色")
Fish = fish(2,"5斤重")
Bird.print_info()
Fish.print_info()
  1. 法call()。创建两个子类:苹果手机类iPhone和Android手机类APhone,并在各自类中重写方法call。创建一个人类Person,定义使用手机打电话的方法use_phone_call().
class Phone():
    def call(self):
        print("使用功能机打电话")
class IPhone(Phone):
    def call(self):
        print("使用苹果手机打电话")
class APhone(Phone):
    def call(self):
        print("使用安卓手机打电话")
class Person():
    def use_phone_call(self, phone):
        phone.call()
person = Person()
person.use_phone_call(Phone())
person.use_phone_call(IPhone())
person.use_phone_call(APhone())
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值