Iridescent:Day28

@浙大疏锦行

https://blog.csdn.net/weixin_45655710?type=blog

作业

题目1: 定义圆 (Circle) 类

要求:

  1. 包含属性:半径 radius.
    2.包含方法:
    ● calculate area(): 计算圆的面积(公式:πr²).
    ● calculate circumference(): 计算圆的周长(公式:2πr).
    3.初始化时需传入半径,默认值为 1.
    1 #示例运行
    2 circle = Circle(5)
    3 print(f"半径:{circle. radius}") #输出:半径:5
    4 print(f"面积:{circle. calculate__area()}") # 输出:面积:78.54(保留两位小数)
    5 print(f"周长:{circle. calculate circumference()}") # 输出:周长:31.42(保留两位小数)
    题目2: 定义长方形 (Rectangle) 类
  2. 包含属性:长 length、宽 width.
    2.包含方法:
    calculate area(): 计算面积(公式:长×宽)。
    ● calculate perimeter(): 计算周长 (公式:2×(长+宽))。is square() 方法,判断是否为正方形(长==宽)。
    3.初始化时需传入长和宽,默认值均为 1.
    1 rect = Rectangle(4, 6)
    2 print(f"长:{rect. length}, 宽:{rect. width}") # 输出:长:4,宽:6
    3 print(f"面积:{rect. calculate area()}") #输出:面积:24
    4 print(f"周长:{rect. calculate__perimeter()}") # 输出:周长:20
    5 print(f"是否为正方形:{rect. is square() }") #输出:是否为正方形:False
    6
    7 square = Rectangle(5, 5)
    8 print(f"是否为正方形:{square. is square() }") # 输出:是否为正方形:True
    题目3:图形工厂
    创建一个工厂函数 create shape(shape type, * args), 根据类型创建不同图形对象:图形工厂(函数或类)
    shape type=" circle": 创建圆(参数:半径)。
    shape type=" rectangle": 创建长方形(参数:长、宽)。
    1 shapel = create shape(" circle", 5)
    2 print(shapel. calculate__circumference()) # 输出:31.42
    3
    4 shape2= create__shape(" rectangle", 3, 4)
    5 print(shape2. is square()) # 输出:False

面向对象编程是 Python 的灵魂。在机器学习中,无论是 Scikit-learn 的 Model 还是 PyTorch 的 nn.Module,本质上都是通过"类"来封装属性(如模型参数)和方法(如训练、预测)。


题目 1:定义圆 (Circle) 类

核心知识点__init__ 初始化方法、self 关键字(指向实例本身)。

python 复制代码
import math

class Circle:
    def __init__(self, radius=1):
        # 属性:半径
        self.radius = radius

    def calculate_area(self):
        # 面积:πr²
        return round(math.pi * self.radius ** 2, 2)

    def calculate_circumference(self):
        # 周长:2πr
        return round(2 * math.pi * self.radius, 2)

# 示例运行
circle = Circle(5)
print(f"半径:{circle.radius}")
print(f"面积:{circle.calculate_area()}")
print(f"周长:{circle.calculate_circumference()}")

题目 2:定义长方形 (Rectangle) 类

核心知识点:多属性初始化、逻辑判断方法。

python 复制代码
class Rectangle:
    def __init__(self, length=1, width=1):
        self.length = length
        self.width = width

    def calculate_area(self):
        return self.length * self.width

    def calculate_perimeter(self):
        return 2 * (self.length + self.width)

    def is_square(self):
        # 判断长宽是否相等
        return self.length == self.width

# 示例运行
rect = Rectangle(4, 6)
print(f"长:{rect.length}, 宽:{rect.width}")
print(f"面积:{rect.calculate_area()}")
print(f"周长:{rect.calculate_perimeter()}")
print(f"是否为正方形:{rect.is_square()}")

square = Rectangle(5, 5)
print(f"是否为正方形:{square.is_square()}")

题目 3:图形工厂

核心知识点:工厂模式(Factory Pattern)的思想。通过一个统一的入口,根据传入的参数动态地创建不同的对象。

python 复制代码
def create_shape(shape_type, *args):
    """
    图形工厂函数
    *args 用于接收不定数量的位置参数,并传递给类的初始化方法
    """
    if shape_type.lower() == "circle":
        # 如果是圆,args[0] 通常是半径
        return Circle(*args)
    elif shape_type.lower() == "rectangle":
        # 如果是长方形,args 包含长和宽
        return Rectangle(*args)
    else:
        raise ValueError("暂不支持该图形类型")

# 示例运行
shape1 = create_shape("circle", 5)
print(f"圆周长:{shape1.calculate_circumference()}")

shape2 = create_shape("rectangle", 3, 4)
print(f"是否为正方形:{shape2.is_square()}")

💡 深度梳理:为什么我们要用类(Class)?

在之前的学习中,我们处理数据通常是用变量和函数。随着项目复杂度增加,你会发现:

  1. 封装性 :类把数据(属性)和处理数据的方法"捆绑"在一起。比如 Circle 对象自己知道自己的半径,也知道怎么算面积,不需要你每次都手动传半径给一个外部函数。
  2. 抽象化 :在工厂函数中,我们只需要关心"我想要一个什么形状",而不需要在主逻辑里去写复杂的 __init__ 初始化过程。这极大简化了代码的调用逻辑。

在接下来的机器学习实践中,你会发现 Pipeline 实际上就是一个巨大的类,它内部封装了各种 Transformer(也是类)和 Estimator(还是类),这种结构化的思维是处理大型项目的基石。加油!

相关推荐
沈浩(种子思维作者)5 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
njsgcs6 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
io_T_T6 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
华研前沿标杆游学7 小时前
2026年走进洛阳格力工厂参观游学
python
Carl_奕然7 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
AI小怪兽7 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机
wszy18097 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
Eric.Lee20217 小时前
python实现 mp4转gif文件
开发语言·python·手势识别·手势交互·手势建模·xr混合现实
EntyIU7 小时前
python开发中虚拟环境配置
开发语言·python
wszy18098 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos