【无标题】

发布于:2025-05-18 ⋅ 阅读:(23) ⋅ 点赞:(0)

Day28

一、定义圆类

import math

class Circle:
    def __init__(self, radius=1):
        self.radius = radius

    def calculate_area(self):
        return math.pi * (self.radius ** 2)

    def calculate_circumference(self):
        return 2 * math.pi * self.radius    

# 创建半径为 5 的圆
circle = Circle(5)

# 计算并打印面积和周长
print(f"圆的面积: {circle.calculate_area()}")
print(f"圆的周长: {circle.calculate_circumference()}")

圆的面积: 78.53981633974483

圆的周长: 31.41592653589793

二、定义长方形类

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    

# 创建长为 5,宽为 3 的长方形
rect = Rectangle(5, 3)

# 计算并打印面积和周长
print(f"长方形的面积: {rect.calculate_area()}")
print(f"长方形的周长: {rect.calculate_perimeter()}")
print(f"是否为正方形: {rect.is_square()}")

# 创建边长为 4 的正方形
square = Rectangle(4, 4)
print(f"正方形是否为正方形: {square.is_square()}")

长方形的面积: 15

长方形的周长: 16

是否为正方形: False

正方形是否为正方形: True

三、图形工厂

from typing import Union

class Circle:
    def __init__(self, radius=1):
        self.radius = radius

    def calculate_area(self):
        return 3.14 * self.radius ** 2

    def calculate_circumference(self):
        return 2 * 3.14 * self.radius

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

def create_shape(shape_type: str, *args) -> Union[Circle, Rectangle]:
    if shape_type == "circle":
        return Circle(*args)
    elif shape_type == "rectangle":
        return Rectangle(*args)
    else:
        raise ValueError(f"Unsupported shape type: {shape_type}")    

# 创建半径为 5 的圆
circle = create_shape("circle", 5)
print(f"圆面积: {circle.calculate_area()}")

# 创建长 4、宽 3 的长方形
rectangle = create_shape("rectangle", 4, 3)
print(f"长方形周长: {rectangle.calculate_perimeter()}")

# 创建正方形(特殊长方形)
square = create_shape("rectangle", 5, 5)
print(f"是否为正方形: {square.is_square()}")

# 错误示例(会抛出异常)
# create_shape("triangle", 3, 4, 5)

圆面积: 78.5

长方形周长: 14

是否为正方形: True

@浙大疏锦行


网站公告

今日签到

点亮在社区的每一天
去签到