用python设计出一个求面积的Area类,要求能处理三角形矩形和圆形的面积计算,并能处理用户输入的异常
时间: 2025-06-21 08:30:07 浏览: 10
在Python中,我们可以创建一个名为`Area`的抽象基类,然后为每个形状(如三角形、矩形和圆形)创建具体的子类。这样可以利用多态性,使得用户只需传入形状类型和必要的尺寸即可计算面积。下面是一个简单的例子:
```python
import math
class Shape:
def __init__(self):
pass
def calculate_area(self):
raise NotImplementedError("Subclasses must implement this method")
class Triangle(Shape):
def __init__(self, base, height):
self.base = base
self.height = height
def calculate_area(self):
return 0.5 * self.base * self.height
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def calculate_area(self):
return self.length * self.width
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def calculate_area(self):
return math.pi * (self.radius ** 2)
def get_user_input():
shape_type = input("请输入形状类型(triangle, rectangle, circle): ")
if shape_type not in ['triangle', 'rectangle', 'circle']:
print("错误的形状类型,请选择其中之一")
return None
dimensions = {
'triangle': (input("请输入底边长: "), input("请输入高: ")),
'rectangle': (input("请输入长度: "), input("请输入宽度: ")),
'circle': (input("请输入半径: "),),
}
return shape_type, dimensions[shape_type]
def main():
try:
shape, dims = get_user_input()
if shape is not None:
area_calculator = eval(f"{shape.title()}")(eval(dims[0]), *eval(dims[1]))
area = area_calculator.calculate_area()
print(f"{shape}的面积是: {area}")
except Exception as e:
print("输入有误,请检查并重新尝试:", str(e))
if __name__ == "__main__":
main()
```
在这个示例中,我们首先定义了基本的`Shape`类以及三个子类。`get_user_input`函数获取用户的选择和相应的尺寸,然后根据输入实例化相应的形状并计算面积。如果用户输入的数据不符合预期,会捕获异常并给出提示。
阅读全文
相关推荐


















