4.编写求三角形周长的函数triangle(a,b,c),函数返回三角形的周长;再编写装饰器对传入triangle(a,b,c)的三条边进行合法性检查(是否大于0,三条边是否构成三角形)。
时间: 2024-05-01 18:23:51 浏览: 66
可以使用海伦公式来计算三角形的周长,即
$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)` 函数来计算三角形的周长,并且在传入参数不合法时会抛出异常。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)