Python假设成年人的体重和身高存在此种关系: 身高(厘米)-100=标准体重(千克)。 编写程序实现:如果一个人的体重与其标准体重的差值在正负5%之间,显示“体重正常”,体重大于标准体重的5%则显示“体重超标”,体重小于标准体重的5%则显示“体重不达标”。 要求能处理用户输入的异常,并且使用“自定义异常类”来处理身高小于30CM、大于250CM的异常情况。
时间: 2023-11-28 12:49:26 浏览: 177
可以按照如下方式编写代码,其中包括一个自定义异常类:
```python
class HeightException(Exception):
def __init__(self, height):
self.height = height
def __str__(self):
return f"身高{self.height}cm不在有效范围内(30cm~250cm)"
try:
height = int(input("请输入身高(单位:厘米):"))
if height < 30 or height > 250:
raise HeightException(height)
weight = float(input("请输入体重(单位:千克):"))
standard_weight = height - 100
diff_ratio = (weight - standard_weight) / standard_weight
if abs(diff_ratio) <= 0.05:
print("体重正常")
elif diff_ratio > 0.05:
print("体重超标")
else:
print("体重不达标")
except ValueError:
print("输入数据格式有误,请输入数字")
except HeightException as e:
print(e)
```
注释:
1. 定义了一个自定义异常类 `HeightException`,用于处理身高小于30cm或大于250cm的情况。
2. 使用 `try...except` 结构来捕获用户输入数据格式错误的异常和身高异常。
3. 计算标准体重和体重差值占标准体重比例,判断体重是否正常,并输出相应的结果。
阅读全文