import math
class Circle:
def __init__(self, radius=1):
self.radius = radius
def calculate_area(self):
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}") # 输出:半径:5
print(f"面积:{circle.calculate_area()}") # 输出:面积:78.54(保留两位小数)
print(f"周长:{circle.calculate_circumference()}") # 输出:周长
class Rectangle:
def __init__(self, length=1, width=1):
# 初始化长方形的长和宽,默认值均为 1
self.length = length
self.width = width
def calculate_area(self):
# 计算长方形的面积,公式为长×宽
return self.length * self.width
def calculate_perimeter(self):
# 计算长方形的周长,公式为 2×(长 + 宽)
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}") # 输出:长:4, 宽:6
print(f"面积:{rect.calculate_area()}") # 输出:面积:24
print(f"周长:{rect.calculate_perimeter()}") # 输出:周长:20
print(f"是否为正方形:{rect.is_square()}") # 输出:是否为正方形:False
square = Rectangle(5, 5)
print(f"是否为正方形:{square.is_square()}")
def create_shape(shape_type, *args):
if shape_type == "circle":
return Circle(*args)
elif shape_type == "rectangle":
return Rectangle(*args)
else:
raise ValueError(f"不支持的图形类型: {shape_type}")
# 测试工厂函数
shape1 = create_shape("circle", 5)
print(shape1.calculate_circumference()) # 输出:31.42
shape2 = create_shape("rectangle", 3, 4)
print(shape2.is_square())