4.编写求三角形周长的函数triangle(a,b,c),函数返回三角形的周长;再编写装饰器对传入triangle(a,b,c)的三条边进行合法性检查(是否大于0,三条边是否构成三角形)。
时间: 2024-05-01 17:23:51 浏览: 46
可以使用海伦公式来计算三角形的周长,即
$C = a + b + c$
其中,$a$、$b$、$c$ 分别为三角形的三条边。
下面是求三角形周长的函数 `triangle(a, b, c)` 的实现:
```python
def triangle(a, b, c):
return a + b + c
```
接下来,我们编写一个装饰器来对传入 `triangle(a, b, c)` 的三条边进行合法性检查。如果三条边中有任何一条不合法(如小于等于零或不满足三角形定理),则抛出异常。
```python
def check_triangle(func):
def wrapper(a, b, c):
if a <= 0 or b <= 0 or c <= 0:
raise ValueError("三角形边长必须大于0!")
if a + b <= c or a + c <= b or b + c <= a:
raise ValueError("无法构成三角形!")
return func(a, b, c)
return wrapper
```
最后,我们将 `check_triangle` 装饰器应用到 `triangle(a, b, c)` 函数上:
```python
@check_triangle
def triangle(a, b, c):
return a + b + c
```
现在,无论我们传入什么样的三条边,都可以通过 `triangle(a, b, c)` 函数来计算三角形的周长,并且在传入参数不合法时会抛出异常。
阅读全文