测量身体肥瘦指数公式:BMI值(BMI=体重/(身高*身高) BMI在18-25之间为标准。体重单位为公斤,身高单位为米 。 为了防止用户输入错误,请编写自定义异常类,一个是身高值XX不正常,一个是体重值不正确。 (1)请用户输入身高和体重,进行下面的判断: 当用户输入的身高超过2.5或小于0.5时,调用异常显示"身高输入错误, xxx不是合理的身高 当用户输入的体重超过300或小于20时,调用异常显示"体重输入错误, xxx不是合理的体重 如果正确,就输出他的身体BMI并输出标准还是肥胖还是偏瘦。 (2)定义一个Person类,里面有身高和体重成员变量,有一个BMI()计算他的BMI值,并有一个show()方法输出他的BMI和身高和体重情况。
时间: 2024-02-24 22:59:21 浏览: 252
Python–根据计算公式:BMI = 体重(kg) / 身高(m)^2判断身体状况
5星 · 资源好评率100%
好的,我可以帮您完成这个任务。
首先,我们需要定义两个自定义异常类,分别用于处理身高和体重输入错误的情况:
```python
class HeightError(Exception):
def __init__(self, height):
self.height = height
def __str__(self):
return f"身高输入错误,{self.height}不是合理的身高"
class WeightError(Exception):
def __init__(self, weight):
self.weight = weight
def __str__(self):
return f"体重输入错误,{self.weight}不是合理的体重"
```
接下来,我们可以定义一个函数来计算BMI值并判断是否在标准范围内:
```python
def calculate_bmi(weight, height):
if height > 2.5 or height < 0.5:
raise HeightError(height)
if weight > 300 or weight < 20:
raise WeightError(weight)
bmi = weight / (height ** 2)
if bmi < 18:
print(f"BMI值为{bmi},偏瘦")
elif bmi < 25:
print(f"BMI值为{bmi},标准")
else:
print(f"BMI值为{bmi},肥胖")
```
最后,我们可以定义一个Person类来实现show()方法和BMI()方法:
```python
class Person:
def __init__(self, weight, height):
self.weight = weight
self.height = height
def BMI(self):
try:
calculate_bmi(self.weight, self.height)
except (HeightError, WeightError) as e:
print(e)
def show(self):
print(f"体重为{self.weight}kg,身高为{self.height}m,")
self.BMI()
```
这样,我们就可以通过Person类的实例来调用show()方法,输出体重、身高和BMI值。如果输入的身高或体重不在合理范围内,会抛出自定义的异常类,提示用户输入错误。
阅读全文