如果一个人的体重与其标准体重的差值在正负5之间,显示“体重正常”,其他则显示“体重超标”或体重不达标。编写程序,能处理用户输入的异常,并且使用自定义异常类来处理身高小于30cm、大于250cm的异常情况。请完善代码
时间: 2024-12-23 09:18:37 浏览: 10
首先,我们需要定义一个自定义异常类来处理身高异常。假设我们将其命名为`InvalidHeightException`。然后,我们可以创建一个函数来计算体重指数(BMI)并根据规则判断体重状况。以下是使用Python编写的示例:
```python
class InvalidHeightException(Exception):
def __init__(self, message="输入的身高不在有效范围内"):
self.message = message
super().__init__(self.message)
def calculate_bmi(height_cm, weight_kg):
if height_cm < 30 or height_cm > 250:
raise InvalidHeightException()
height_m = height_cm / 100
bmi = weight_kg / (height_m ** 2)
return bmi
def check_weight_status(weight_kg, height_cm):
try:
bmi = calculate_bmi(height_cm, weight_kg)
if -5 <= bmi - 18.5 <= 5:
return "体重正常"
elif bmi < 18.5:
return "体重不达标"
else:
return "体重超标"
except InvalidHeightException as e:
print(f"错误:{e}")
# 用户输入示例
weight_kg = float(input("请输入您的体重(kg):"))
height_cm = int(input("请输入您的身高(cm):"))
status = check_weight_status(weight_kg, height_cm)
print(f"根据BMI,您的体重状态是:{status}")
阅读全文