Python

第8章参考-面向对象

import time
def trigon_time(fun):
    def triangle_time(a, b, c):
        start_time = time.time()
        c = fun(a, b, c)
        stop_time = time.time() - start_time
        print(f'一共耗时:{stop_time} 秒')
        return c
    return triangle_time
@trigon_time
def if_s(a, b, c):
    if a + b > c and a + c > b and b + c > a:
        print("能构成三角形")
    else:
        print("不能构成三角形")
if_s(3, 4, 5)
class Course:
    # 构造函数 创建属性 id 等
    def __init__(self, c_id, c_name, teacher):
        # 初始化参数
        self.c_id = c_id
        self.c_name = c_name
        self.teacher = teacher
    def print_name(self):
        print(f"该课程是{self.c_name}")
    def print_teacher(self):
        print(f"课程{self.c_name}的老师是{self.teacher}")
    def printid(self):
        print(f"该课程ID是{self.c_id}")
# 判断是否是在当前文件运行
if __name__ == "__main__":
    # 实例化类
    cou = Course(123, "厚大法考", "法外狂徒张三")
    # 打印课程
    cou.print_name()
    # 打印教师
    cou.print_teacher()
    # 打印ID
    cou.printid()

 

第十、十一章

# 1、设计一个课程类,包括课程编号、课程名称、任课教师、上课地点等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法。
class Course:
    def __init__(self, nub, name, teacher, location):
        self.nub = nub
        self.name = name
        self.teacher = teacher
        self.__location = location
    def show_info(self):
        print("课程编号为:" + str(self.nub))
        print("课程名称为:" + str(self.name))
        print("课程老师为:" + str(self.teacher))
        print("课程上课地点为:" + str(self.__location))
cou = Course("123", "厚大法考", "法外狂徒张三", "网上直播")
cou.show_info()

 

# 2、设计一个Circle(圆)类,包括半径、颜色等属性。编写构造方法、以及计算周长方法和面积方法。请编写程序验证类的功能
class Circle:
    def __init__(self, color):
        self.__pai = 3.14
        self.color = color
    # 周长
    def perimeter(self, r):
        print(f"该圆的周长为:{2 * self.__pai * r}")
    # 面积
    def area(self, r):
        print(f"该圆的面积为: {self.__pai * r * r}")
circle = Circle("白色")
# 周长 参数R
circle.perimeter(3)
# 面积 参数R
circle.area(4)

 

# 3、设计一个表示学生的类:Student,该类的属性有)name(姓名,age(年龄),scores(成绩,包含语文、数学和英语三科成绩,每科成绩的类型为整数),另外此类还有
class Student:
    def __init__(self, name, age, scores):
        self.name = name
        self.age = age
        self.scores = scores
    def get_name(self):
        print(f"该学生叫:{self.name}")
        return str(self.name)
    def get_age(self):
        print(f"该学生年龄为:{self.age}")
        return int(self.age)
    def get_course(self):
        self.scores.sort(reverse=True)
        print(f"三门课中最高的是:{self.scores[0]}")
        return int(self.scores[0])
# 语文 数学 英语
stu = Student("李四", 18, [90, 100, 92])
stu.get_name()
stu.get_age()
stu.get_course()
# 4、设计一个表示动物的类:Animal,其内部有一个color(颜色)属性和call(叫)的方法。再设计一个表示Fish(鱼)类,该类中有tail(尾巴)和color属性,以及一个call(叫)方法。
# 提示: 让Fish类继承自Animal类,重写init和call方法。
class Animal:
    def __init__(self, color):
        self.color = color
    def call(self):
        print("这是动物类叫声,叫声简直千奇百怪")
class Fish(Animal):
    def __init__(self, color, tail):
        Animal.__init__(self, color)
        self.tail = tail
    def call(self):
        print("这个是鱼,叫声:啊呜~啊呜~")
fish = Fish("白色", "长尾")
fish.call()