1.案例描述:
基础代谢率(Basal Metabolic Rate,简称BMR)是指:我们在安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上
计算公式:
BMR(男)=(13.7*体重(Kg))+(5.0*身高(cm))-(6.8*年龄)+ 66
BMR(女)=(9.6*体重(Kg))+(1.8*身高(公分))-(4.7*年龄)+ 655
2.功能要求:
(1)根据用户输入计算RMB,程序持续运行
(2)用户可以在一行输入所有信息,带单位的信息输出
(3)处理异常操作
3.代码实现
(1)程序持续运行
def main():
i=1
while i==1:
print('请输入操作项:')
n = input('1:执行程序\n2:退出程序\n')
if n=='1':
print('请输入以下信息:')
sex=input('性别:')
weight=float(input('体重(Kg):'))
high=float(input('身高(cm):'))
age=int(input('年龄:'))
if sex=='男':
bmr=(13.7*weight)+(5.0*high)-(6.8*age)+66
elif sex=='女':
bmr=(9.6*weight)+(1.8*high)-(4.7*age)+655
else:
bmr=-1
if bmr==-1:
print('暂不支持该性别')
else:
print('基础代谢率为:',bmr)
print('====================')
elif n=='2':
i=0
print('程序已退出!')
else:
print('你输入的选项有误,请重新输入')
print('============================')
if __name__=='__main__':
main()
运行结果:
(2)一行输入所有信息,带单位的信息输出
def main():
"""
主函数
"""
y_or_n = input('是否退出程序(y/n)?')
while y_or_n != 'y':
print('请输入以下信息,用空格分割')
input_str = input('性别 体重(kg) 身高(cm)年龄:')
str_list = input_str.split(' ')
#分别存到列表中
gender = str_list[0]
weight = float(str_list[1])
height = float(str_list[2])
age = int(str_list[3])
if gender == '男':
# 男性
bmr = (13.7 * weight) + (5.0 * height) - (6.8 * age) + 66
elif gender == '女':
# 女性
bmr = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655
else:
bmr = -1
if bmr != -1:
print('性别:{3},体重:{2}kg,身高:{1}cm,年龄:{0}岁'.format(age, height, weight, gender))#格式化
print('您的基础代谢率:{}大卡'.format(bmr))
else:
print('暂不支持该性别')
print() # 无参输出空行
y_or_n = input('是否退出程序(y/n)?')
if __name__ == '__main__':
main()
运行结果:
(3)处理异常
def main():
y_or_n = input('是否退出程序(y/n)?')
while y_or_n != 'y':
print('请输入以下信息,用空格分割')
input_str = input('性别 体重(kg) 身高(cm)年龄:')
str_list = input_str.split(' ')
try:
gender = str_list[0]
weight = float(str_list[1])
height = float(str_list[2])
age = int(str_list[3])
if gender == '男':
# 男性
bmr = (13.7 * weight) + (5.0 * height) - (6.8 * age) + 66
elif gender == '女':
# 女性
bmr = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655
else:
bmr = -1
if bmr != -1:
print('性别:{3},体重:{2}kg,身高:{1}cm,年龄:{0}岁'.format(age, height, weight, gender))
print('您的基础代谢率:{}大卡'.format(bmr))
else:
print('暂不支持该性别')
except ValueError:
print('请输入正确的信息!')
except IndexError:
print('输入的信息过少!')
except:
print('程序异常')
print() # 无参输出空行
y_or_n = input('是否退出程序(y/n)?')
if __name__ == '__main__':
main()