Python用函数和类解决问题的直观对比


为什么要用函数DEF来解决问题,为什么要用类CLASS来解决问题

传统小白写法,使用起来麻烦,需要不断的重复写代码

函数写法,将大部分代码写入一个函数中,只要调用函数即可使用

类的对象写法,将不同的信息封装入类,然后用不同的方法使用,非常灵活

假如已知3个同学的数学,物理,语文,历史的成绩,要判断他们是不是理科优秀还是文科优秀还是总分优秀

zhang = [80, 85, 89, 90]
liu = [77, 99, 87, 62]
zhou = [92, 67, 82, 90]
wu = [88, 87, 91, 78]
zhao = [70, 72, 97, 96]

 方法一:传统小白方法

zhang_li = zhang[0] + zhang[1]
zhang_wen = zhang[2] + zhang[3]
if zhang_li > 180:
    print("zhang的理科成绩很好")
if zhang_wen > 170:
    print("zhang的文科成绩很好")
if zhang_li + zhang_wen > 330:
    print("zhang的总成绩很好")

liu_li = liu[0] + liu[1]
liu_wen = liu[2] + liu[3]
if liu_li > 180:
    print("liu的理科成绩很好")
if liu_wen > 170:
    print("liu的文科成绩很好")
if liu_li + liu_wen > 330:
    print("liu的总成绩很好")

方法二:函数

def chengji(name, stu):
    li = stu[0] + stu[1]
    wen = stu[2] + stu[3]
    if li > 180:
        print(f"{name}的理科成绩很好")
    if wen > 170:
        print(f"{name}的文科成绩很好")
    if li + wen > 330:
        print(f"{name}的总成绩很好")


chengji("zhang", zhang)
chengji("赵", zhao)
chengji("吴", wu)

方法三:用类来解决问题:

class STU:
    def __init__(self, name, cheng_ji):
        self.name = name
        self.cheng_ji = cheng_ji

    def li(self):
        li = self.cheng_ji[0] + self.cheng_ji[1]
        if li > 180:
            print(f"{self.name}的理科成绩很好")
        else:
            print(f"{self.name}的理科成绩不好")

    def wen(self):
        wen = self.cheng_ji[2] + self.cheng_ji[3]
        if wen > 170:
            print(f"{self.name}的文科成绩很好")
        else:
            print(f"{self.name}的文科不好")

    def zong(self):
        zong = sum(self.cheng_ji)
        if zong > 330:
            print(f"{self.name}的总成绩很好")
        else:
            print(f"{self.name}的总成绩不好")


zh = STU("张", zhang)
zh.zong()
zh.li()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值