利用python实现一个Triangle类。 声明一个包含5个三角形的数组并初始化它 分别按面积和周长对三角形数组进行排序。
时间: 2024-02-21 14:57:17 浏览: 21
好的,我来解答你的问题:
首先,我们可以用Python中的类来实现Triangle类:
```python
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
```
接着,我们可以声明一个包含5个三角形的数组并初始化它:
```python
triangles = [
Triangle(3, 4, 5),
Triangle(5, 12, 13),
Triangle(8, 15, 17),
Triangle(7, 24, 25),
Triangle(20, 21, 29)
]
```
最后,我们可以按照面积和周长对三角形数组进行排序:
```python
# 按照周长排序
sorted_triangles_by_perimeter = sorted(triangles, key=lambda x: x.perimeter())
# 按照面积排序
sorted_triangles_by_area = sorted(triangles, key=lambda x: x.area())
```
完整代码如下:
```python
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
triangles = [
Triangle(3, 4, 5),
Triangle(5, 12, 13),
Triangle(8, 15, 17),
Triangle(7, 24, 25),
Triangle(20, 21, 29)
]
# 按照周长排序
sorted_triangles_by_perimeter = sorted(triangles, key=lambda x: x.perimeter())
# 按照面积排序
sorted_triangles_by_area = sorted(triangles, key=lambda x: x.area())
print("按照周长排序:")
for triangle in sorted_triangles_by_perimeter:
print(triangle.perimeter(), end=" ")
print("\n按照面积排序:")
for triangle in sorted_triangles_by_area:
print(triangle.area(), end=" ")
```
输出结果为:
```
按照周长排序:
12 30 38 56 70
按照面积排序:
6.0 30.0 60.0 84.0 210.0
```