用python设计出一个求面积的Area类,要求能处理三角形、矩形和圆形的面积计算,并能自动处理用户输入异常
时间: 2025-06-09 18:05:57 浏览: 14
在Python中,我们可以设计一个名为`Area`的抽象基类(Abstract Base Class, ABC),然后创建三个具体的子类:`Triangle`, `Rectangle`, 和 `Circle`,每个子类负责自己的形状面积计算。同时,我们可以在基类中添加一个通用的输入验证方法来处理用户可能输入的异常。以下是简单的代码示例:
```python
from abc import ABC, abstractmethod
class Area(ABC):
@abstractmethod
def calculate_area(self, *args, **kwargs):
pass
class Triangle(Area):
def __init__(self, base, height):
self.base = base
self.height = height
def calculate_area(self):
try:
return 0.5 * self.base * self.height
except TypeError as e:
print(f"错误:{e}. 请输入三角形的底和高数值.")
class Rectangle(Area):
def __init__(self, length, width):
self.length = length
self.width = width
def calculate_area(self):
try:
return self.length * self.width
except TypeError as e:
print(f"错误:{e}. 请输入矩形的长度和宽度数值.")
class Circle(Area):
def __init__(self, radius):
self.radius = radius
def calculate_area(self):
try:
return 3.14159 * (self.radius ** 2)
except TypeError as e:
print(f"错误:{e}. 请输入圆的半径数值.")
# 用户输入并计算面积
shape = input("请输入形状(tri, rect, circle):")
if shape.lower() in ["tri", "triangle"]:
base, height = map(float, input("请输入三角形的底和高:").split())
area_triangle = Triangle(base, height).calculate_area()
elif shape.lower() in ["rect", "rectangle"]:
length, width = map(float, input("请输入矩形的长和宽:").split())
area_rectangle = Rectangle(length, width).calculate_area()
elif shape.lower() == "circle":
radius = float(input("请输入圆的半径:"))
area_circle = Circle(radius).calculate_area()
else:
print("无效的形状,请从tri, rect或circle中选择.")
```
在这个例子中,
阅读全文
相关推荐


















