为什么要用函数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()