定义接口或类 Shape,定义求周长的方法length()。
定义如下类,实现父类Shape的方法。
(1)三角形类Triangle (2)矩形类Rectangle (3)圆形类Circle等。
输入格式:
输入单行数据,以空格分隔:
一行中若有1个数,表示圆的半径,Pi取3.14;
一行中若有2个数,表示长方形的两条边的长度。
一行中若有3个数,表示三角形的三边的长度。(需要判断三个边长是否能构成三角形)
若输入数据中有0、负数或非法图形,则周长直接为0。
输出格式:
行数与输入相对应,数值为根据每行输入数据求得的图形的周长,结果均保留两位小数。
输入样例1:
在这里给出一组输入。例如:
12
输出样例1:
在这里给出相应的输出。例如:
圆形的周长为: 75.36
输入样例2:
在这里给出一组输入。例如:
24 12 17
输出样例2:
在这里给出相应的输出。例如:
三角形的周长为: 53.00
输入样例3:
在这里给出一组输入。例如:
18 20
输出样例3:
在这里给出相应的输出。例如:
矩形的周长为: 76.00
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 f(self,a,b,c):
return a+b>c and a+c>b and b+c>a
def length(self):
if self.a<=0 or self.b<=0 or self.c<=0 or not self.f(a,b,c):
return 0
else:
return self.a+self.b+self.c
class Rectangle(Shape):
def __init__(self,w,l):
self.w=w
self.l=l
def length(self):
if self.w<=0 or self.l<=0:
return 0
else:
return 2*(w+l)
class Circle(Shape):
def __init__(self,r):
self.r=r
def length(self):
if self.r<=0:
return 0
else:
return 2*3.14*self.r
data=input().split()
lenth=len(data)
if lenth==1:
r=float(data[0])
shape=Circle(r)
print(f"圆形的周长为: {shape.length():.2f}")
elif lenth==2:
w,l=float(data[0]),float(data[1])
shape=Rectangle(w,l)
print(f"矩形的周长为: {shape.length():.2f}")
elif lenth==3:
a,b,c=float(data[0]),float(data[1]),float(data[2])
shape=Triangle(a,b,c)
print(f"三角形的周长为: {shape.length():.2f}")