匿名用户
1级
2018-06-01 回答
def getbmi(heigth, weigth):
bmi = round(weigth / heigth ** 2, 2)
return bmi
num = int(raw_input(u'请输入统计人数:'))
students = {}
sname = ''
sheigth = 0.0
sweigth = 0.0
swaistl = 0.0
sbim = 0.0
result = ''
for i in range(num):
flag = True
while flag:
sname = raw_input(u'请输入学生姓名:')
sheigth = float(raw_input(u'请输入学生身高以厘米计60<身高<250:')) / 100.0
sweigth = float(raw_input(u'请输入学生体重以公斤计20<体重<300:'))
swaistl = float(raw_input(u'请输入学生腰围以厘米计50<腰围<200:'))
if 0.6 < sheigth < 2.5:
if 20 < sweigth < 300:
if 50 < swaistl < 200:
flag = False
else:
flag = True
print u'腰围输入不在规定范围,请重新输入!'
else:
flag = True
print u'体重输入不在规定范围,请重新输入!'
else:
flag = True
print u'身高输入不在规定范围,请重新输入!'
else:
sbim = getbmi(sheigth, sweigth)
if sbim < 18.5:
result = '偏瘦'
elif 18.5 <= sbim < 24:
result = '正常'
elif 24 <= sbim < 28:
result = '偏胖'
else:
result = '肥胖'
students[sname] = [sheigth, sweigth, swaistl, sbim, result]
else:
values = []
for i in students.values():
values.append(i[3])
temp = sorted(zip(values, students.keys()))
print u'姓名 身高 体重 腰围 BMI值 分析结果'
for item in temp:
print '{0} {1:.2f} {2:.2f} {3:.2f} {4:.2f} {5}'\
.format(item[1], students[item[1]][0], students[item[1]][1], students[item[1]][2], students[item[1]][3],
students[item[1]][4])结果如下: