编写程序完成以下功能: (1)编写函数writeFile(),其功能是打开一个文件,文件名称为“data.txt”,将考生本人的学号姓名和文字“健康状况判断!”写入文件中n次。 (2)编写函数,其功能是:根据BMI值判断身体状况,函数名称和参数为: judgeHealth(bmi)。bmi为身体质量指数。 BMI计算公式为:BMI = weight / (height*height) 根据BMI判断身体状况的标准: 身体状况 BMI值 偏瘦 <18.5 正常 [18.5, 24) 偏胖 [24, 28) 肥胖 >=28 (3)编写函数,其功能是:输出p_list列表中所有人的姓名、身高、体重、身体状况。函数名称和参数为:printResult(p_list)。 (4)下面列表中存放了所有人的姓名、身高、体重,调用writeFile函数写入100次对应信息;调用printResult函数输出所有人的姓名、身高、体重、身体状况;编写程序统计身体状况为正常的人数。 程序结构如下: def writeFile(n): # 此处补充代码 def judgeHealth(bmi): # 此处补充代码 def printResult(p_list): # 此处补充代码 p_list = [ {"name": "tom", "height": 1.8, "weight": 65}, {"name": "marry", "height": 1.65, "weight": 55}, {"name": "peter", "height": 1.7, "weight": 95}, {"name": "tony", "height": 1.82, "weight": 50}, {"name": "alice", "height": 1.5, "weight": 45} ] # 此处补充代码
时间: 2023-07-19 14:40:32 浏览: 31
下面是完整的程序代码:
```python
def writeFile(n):
with open("data.txt", "w") as f:
for i in range(n):
f.write("学号:xxx 姓名:xxx 健康状况判断!\n")
def judgeHealth(bmi):
if bmi < 18.5:
return "偏瘦"
elif bmi >= 18.5 and bmi < 24:
return "正常"
elif bmi >= 24 and bmi < 28:
return "偏胖"
else:
return "肥胖"
def printResult(p_list):
for p in p_list:
bmi = p["weight"] / (p["height"] * p["height"])
health_status = judgeHealth(bmi)
print("姓名:{},身高:{},体重:{},身体状况:{}".format(p["name"], p["height"], p["weight"], health_status))
p_list = [
{"name": "tom", "height": 1.8, "weight": 65},
{"name": "marry", "height": 1.65, "weight": 55},
{"name": "peter", "height": 1.7, "weight": 95},
{"name": "tony", "height": 1.82, "weight": 50},
{"name": "alice", "height": 1.5, "weight": 45}
]
writeFile(100)
printResult(p_list)
count = 0
for p in p_list:
bmi = p["weight"] / (p["height"] * p["height"])
health_status = judgeHealth(bmi)
if health_status == "正常":
count += 1
print("身体状况为正常的人数为:{}".format(count))
```
程序的输出结果如下:
```
姓名:tom,身高:1.8,体重:65,身体状况:正常
姓名:marry,身高:1.65,体重:55,身体状况:正常
姓名:peter,身高:1.7,体重:95,身体状况:肥胖
姓名:tony,身高:1.82,体重:50,身体状况:偏瘦
姓名:alice,身高:1.5,体重:45,身体状况:正常
身体状况为正常的人数为:3
```