使用get_shape_list()函数实现形状列表生成
发布时间:2024-01-09 16:14:10
get_shape_list()函数是一个生成形状列表的函数。它接受一个整数n作为参数,表示生成形状列表的长度,返回一个包含n个元素的形状列表。
形状列表是一个由各种形状对象组成的列表,每个对象代表一个形状。形状对象可以是矩形、圆形、三角形等等。生成的形状列表中每个元素都是一个形状对象,可以通过调用对象的方法来获取形状的属性,比如面积、周长等等。
下面是get_shape_list()函数的实现代码:
import random
class Shape:
def __init__(self, name):
self.name = name
class Rectangle(Shape):
def __init__(self, name, length, width):
super().__init__(name)
self.length = length
self.width = width
def area(self):
return self.length * self.width
def perimeter(self):
return 2 * (self.length + self.width)
class Circle(Shape):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
def area(self):
return 3.14 * self.radius * self.radius
def circumference(self):
return 2 * 3.14 * self.radius
class Triangle(Shape):
def __init__(self, name, side1, side2, side3):
super().__init__(name)
self.side1 = side1
self.side2 = side2
self.side3 = side3
def area(self):
semi_perimeter = (self.side1 + self.side2 + self.side3) / 2
return (semi_perimeter * (semi_perimeter - self.side1) * (semi_perimeter - self.side2) * (semi_perimeter - self.side3)) ** 0.5
def perimeter(self):
return self.side1 + self.side2 + self.side3
def get_shape_list(n):
shape_list = []
for _ in range(n):
shape_type = random.choice(['Rectangle', 'Circle', 'Triangle'])
if shape_type == 'Rectangle':
name = 'Rectangle'
length = random.randint(1, 10)
width = random.randint(1, 10)
shape = Rectangle(name, length, width)
elif shape_type == 'Circle':
name = 'Circle'
radius = random.randint(1, 10)
shape = Circle(name, radius)
else:
name = 'Triangle'
side1 = random.randint(1, 10)
side2 = random.randint(1, 10)
side3 = random.randint(1, 10)
shape = Triangle(name, side1, side2, side3)
shape_list.append(shape)
return shape_list
使用get_shape_list()函数生成形状列表的例子:
shape_list = get_shape_list(5)
for shape in shape_list:
print('Shape:', shape.name)
if isinstance(shape, Rectangle):
print('Length:', shape.length)
print('Width:', shape.width)
print('Area:', shape.area())
print('Perimeter:', shape.perimeter())
elif isinstance(shape, Circle):
print('Radius:', shape.radius)
print('Area:', shape.area())
print('Circumference:', shape.circumference())
elif isinstance(shape, Triangle):
print('Side 1:', shape.side1)
print('Side 2:', shape.side2)
print('Side 3:', shape.side3)
print('Area:', shape.area())
print('Perimeter:', shape.perimeter())
print('---')
上述代码中,我们首先通过调用get_shape_list(5)函数生成了一个包含5个形状对象的形状列表。然后我们遍历形状列表,对于每个形状对象,我们输出了它的名称以及相应的属性,比如长度、宽度、半径等等。最后通过调用对象的方法,我们计算了形状的面积和周长,并输出给用户。
这样,通过调用get_shape_list()函数,我们可以很方便地生成包含各种形状对象的形状列表,使得我们能够灵活地操作这些形状对象,获取它们的属性和执行相关的计算。
