Python 假设成年人的体重和身高存在此种关系: 身高(厘米)-100=标准体重(千克)。 编写程序实现:如果一个人的体重与其标准体重的差值在正负5%之间,显示“体重正常”,体重大于标准体重的5%则显示“体重超标”,体重小于标准体重的5%则显示“体重不达标”。 要求能处理用户输入的异常,并且使用“自定义异常类”来处理身高小于30CM、大于250CM的异常情况。
时间: 2023-11-28 12:49:16 浏览: 59
可以使用以下代码实现:
```python
class HeightException(Exception):
pass
class WeightException(Exception):
pass
try:
height = float(input("请输入您的身高(厘米):"))
if height < 30 or height > 250:
raise HeightException("身高异常")
weight = float(input("请输入您的体重(千克):"))
standard_weight = height - 100
diff = (weight - standard_weight) / standard_weight
if abs(diff) <= 0.05:
print("体重正常")
elif diff > 0.05:
print("体重超标")
else:
print("体重不达标")
except ValueError:
print("输入的身高或体重不合法")
except HeightException as e:
print("身高异常:", e)
except WeightException as e:
print("体重异常:", e)
```
首先定义了两个自定义异常类 `HeightException` 和 `WeightException`,分别用于处理身高异常和体重异常。
接着使用了 `try-except` 结构来处理用户输入的异常情况。首先读取用户输入的身高和体重,并将身高减去100得到标准体重。如果身高不在30到250之间,就抛出 `HeightException` 异常,由 `except` 语句块处理。如果身高和体重都是合法的,就计算体重和标准体重的差值比例 `diff`,根据 `diff` 的值判断体重是否超标或不达标,并输出相应的提示信息。如果身高或体重的输入不合法,就抛出 `ValueError` 异常,由 `except` 语句块处理。
使用自定义异常类可以使得代码更清晰、更易读。
相关推荐
![](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)