用python定义接口或类 Shape,定义求周长的方法length()。 定义如下类,实现父类Shape的方法。 (1)三角形类Triangle (2)矩形类Rectangle (3)圆形类Circle等。 输入格式: 输入单行数据,以空格分隔: 一行中若有1个数,表示圆的半径,Pi取3.14; 一行中若有2个数,表示长方形的两条边的长度。 一行中若有3个数,表示三角形的三边的长度。(需要判断三个边长是否能构成三角形) 若输入数据中有0、负数或非法图形,则周长直接为0。
时间: 2024-03-12 12:44:46 浏览: 192
好的,我可以为您提供一个实现 Shape 父类的三个子类的代码示例。以下是实现代码:
```python
class Shape:
def length(self):
pass
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def length(self):
if self.a <= 0 or self.b <= 0 or self.c <= 0:
return 0
if self.a + self.b <= self.c or self.a + self.c <= self.b or self.b + self.c <= self.a:
return 0
return self.a + self.b + self.c
class Rectangle(Shape):
def __init__(self, a, b):
self.a = a
self.b = b
def length(self):
if self.a <= 0 or self.b <= 0:
return 0
return 2 * (self.a + self.b)
class Circle(Shape):
def __init__(self, r):
self.r = r
def length(self):
if self.r <= 0:
return 0
return 2 * 3.14 * self.r
# 测试代码
input_data = input().split()
if len(input_data) == 1:
r = float(input_data[0])
shape = Circle(r)
elif len(input_data) == 2:
a = float(input_data[0])
b = float(input_data[1])
shape = Rectangle(a, b)
elif len(input_data) == 3:
a = float(input_data[0])
b = float(input_data[1])
c = float(input_data[2])
shape = Triangle(a, b, c)
else:
shape = Shape()
print("{:.2f}".format(shape.length()))
```
以上代码实现了 Shape 父类和三个子类:Triangle、Rectangle 和 Circle,并且实现了求周长的方法 length。在测试代码中,通过输入的参数个数来判断用户需要的是哪个子类的对象,然后调用对应的 length 方法计算周长并输出结果。如果输入的参数存在非法情况,则周长直接为0。
希望这个代码示例能够帮助到您。
阅读全文