假设一个成年人的体重与身高存在此种关系:身高(厘米)-100=标准体重(千克),如果一个人实际体重与其标准体重的差值在正负5%之间显示“体重正常”,否则显示“体重超标”或“体重不达标”。请编写程序,根
时间: 2023-05-01 07:02:38 浏览: 178
这段代码是关于假设一个成年人的体重和身高存在的关系:身高(厘米)-100=标准体重(千克)如果一个人实际体重和其标准体重的差值在正负5%之间,则显示“体重正常”,否则显示“体重超标”或“体重不达标”。请编写程序,根据输入的身高和体重,判断出该人的体重是否达标。
相关问题
假设成年人的体重和身高存在此种关系: 身高(厘米)-100=标准体重(千克)。 编写程序实现:如果一个人的体重与其标准体重的差值在正负5%之间,显示“体重正常”,体重大于标准体重的5%则显示“体重超标”,体重小于标准体重的5%则显示“体重不达标”。 要求能处理用户输入的异常,并且使用“自定义异常类”来处理身高小于30CM、大于250CM的异常情况
好的,我可以帮你编写这个程序。以下是代码实现:
```python
# 自定义异常类
class HeightError(Exception):
def __init__(self, message):
self.message = message
# 计算标准体重
def get_standard_weight(height):
return (height - 100) * 0.9
# 判断体重是否正常
def check_weight(weight, standard_weight):
diff = weight - standard_weight
diff_ratio = diff / standard_weight
if abs(diff_ratio) <= 0.05:
return "体重正常"
elif diff_ratio > 0.05:
return "体重超标"
else:
return "体重不达标"
# 主程序
while True:
try:
height = float(input("请输入您的身高(厘米):"))
if height < 30 or height > 250:
raise HeightError("身高异常,请输入正确的身高值(30-250厘米)!")
weight = float(input("请输入您的体重(千克):"))
standard_weight = get_standard_weight(height)
result = check_weight(weight, standard_weight)
print(result)
break
except ValueError:
print("输入错误,请输入数字!")
except HeightError as e:
print(e.message)
```
程序中定义了一个自定义异常类 `HeightError`,用于处理身高输入异常的情况。在主程序中,通过 `try...except` 结构来捕获用户输入的异常,并根据输入的身高和体重计算标准体重,最后判断体重是否正常并输出结果。
运行程序后,如果用户输入的身高小于30或大于250,会抛出 `HeightError` 异常,并提示用户重新输入正确的身高值;如果用户输入的不是数字,则会提示输入错误;如果一切正常,则会输出体重的判断结果。
Python 假设成年人的体重和身高存在此种关系: 身高(厘米)-100=标准体重(千克)。 编写程序实现:如果一个人的体重与其标准体重的差值在正负5%之间,显示“体重正常”,体重大于标准体重的5%则显示“体重超标”,体重小于标准体重的5%则显示“体重不达标”。 要求能处理用户输入的异常,并且使用“自定义异常类”来处理身高小于30CM、大于250CM的异常情况。
可以使用以下代码实现:
```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` 语句块处理。
使用自定义异常类可以使得代码更清晰、更易读。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)