def bmi(): height, weight =input_data() def input_data(): height weight =00 while True: try: pass except ValueError: print('数据有误。请输入正确的数据\n') else: break return height weight
时间: 2023-05-24 20:00:54 浏览: 136
这是一个编程问题,这段代码的作用是计算一个人的BMI指数。函数input_data()用于获取输入的身高和体重数据,而函数bmi()则调用input_data()并进行计算。输入数据时,会循环询问用户输入,直到输入的数据格式正确为止。
相关问题
编写程序,实现Person类及方法,并定义相应类对象并进行测试。 类Person,包含实例属性:name, age, height(身高),weight(体重) 设计构造函数初始化实例属性 设计实例方法setData进行实例属性的键盘输入和修改 设计实例方法printData进行实例属性的输出 设计实例方法按Person的BMI公式为:体重/身高^2。体总单位是kg,身高为m 要求创建Person对象,调用实例方法修改实例属性,并输出修改后的值,最后计算Person的BMI 注意: • 输出的Person身高、体重、BMI保留两位小数 输入格式: 共四个输入及类型,依次为: name--string age--int height--float weight--float 输出格式: 按照以上需求提示依次输出。
好的,下面是Python的代码实现:
```python
class Person:
def __init__(self, name, age, height, weight):
self.name = name
self.age = age
self.height = height
self.weight = weight
def setData(self):
self.name = input("请输入姓名:")
self.age = int(input("请输入年龄:"))
self.height = float(input("请输入身高(单位:米):"))
self.weight = float(input("请输入体重(单位:千克):"))
def printData(self):
print("姓名:", self.name)
print("年龄:", self.age)
print("身高:{:.2f}".format(self.height))
print("体重:{:.2f}".format(self.weight))
def getBMI(self):
bmi = self.weight / (self.height ** 2)
return bmi
# 创建Person对象
p = Person("张三", 20, 1.75, 70.0)
# 调用setData方法修改实例属性
p.setData()
# 调用printData方法输出实例属性
p.printData()
# 计算BMI
bmi = p.getBMI()
print("BMI:{:.2f}".format(bmi))
```
代码说明:
1. 定义`Person`类,包括实例属性`name`、`age`、`height`、`weight`,以及构造方法`__init__`、实例方法`setData`、实例方法`printData`、实例方法`getBMI`。
2. 在构造方法中初始化实例属性。
3. 在`setData`方法中,通过键盘输入修改实例属性。
4. 在`printData`方法中,输出实例属性,其中身高和体重保留两位小数。
5. 在`getBMI`方法中,按照BMI公式计算BMI。
6. 创建`Person`对象,调用`setData`方法修改实例属性。
7. 调用`printData`方法输出实例属性。
8. 计算BMI,输出结果。
希望这个例子能够帮到你!
阅读全文