python 基础代谢率计算_BMR计算(Python),的
基础代谢率的计算是一个公式,男性和女性的计算不同,根据基本的计算公式可以用Python代码实现不同的功能。
1.0:简单的计算器,根据给定的具体数据进行计算。根据输入的性别不同进行判断(输入的性别必须为“男”或“女”,否则报错),男性和女性分别执行不同的计算。
def main():
gender = "男"
weight = 70
height = 175
age = 25
if gender=="男":
gmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66
elif gender=="女":
gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655
else:
gmr =- 1
if gmr!=-1:
print("基础代谢率(大卡):",gmr)
else:
print("暂不支持该性别!")
if __name__=="__main__":
main()
2.0:1.0 只能计算一个用户的BMR,2.0 版本加入循环可以多次计算不同用户的BMR。
def main():
y_or_n = input("是否退出程序(退出请输入yes,否则输入no)?")
while (y_or_n != "yes"):
gender = input("性别:")
#print(type(gender))
weight = float(input("体重(kg):"))
#print(type(weight))
height = float(input("身高(cm):"))
#print(type(height))
age = int(input("年龄:"))
#print(type(age))
if gender=="男":
gmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66
elif gender=="女":
gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655
else:
gmr = -1
if gmr!=-1:
print("基础代谢率(大卡):",gmr)
else:
print("暂不支持该性别!")
print()#输出空行
y_or_n = input("是否退出程序(退出请输入yes)?")
if __name__=="__main__":
main()
在while循环内,用户可以根据系统提示依次输入性别、体重、身高、年龄的信息,然后根据性别进行计算。为了界面更加友好,系统会提示是否退出计算系统,而while循环的结束条件为退出计算系统。另一个解决的问题为:用户在input()中输入的体重、身高、年龄信息为str,计算时需要转化为整型或浮点型,int() 和 float() 实现了这种转化。
3.0:实现功能为:(1)用户可以一次输入自己的所有信息,不必根据系统提示输入多次。(2)1.0 和 2.0 版本的输出结果不带单位(大卡),3.0 实现了输出带单位的计算结果。
def main():
y_or_n = input("是否退出程序(退出请输入yes,否则输入no)?")
while (y_or_n != "yes"):
print("请输入以下个人信息,中间用空格隔开")
person_str = input("性别:体重(kg):身高(cm):年龄:")
person = person_str.split(" ")
gender = person[0]
weight = float(person[1])
height = float(person[2])
age = int(person[3])
if gender=="男":
gmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66
elif gender=="女":
gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655
else:
gmr = -1
if gmr!=-1:
print("您的性别为{},体重为{}kg,身高为{}cm,年龄为{}岁".format(gender,weight,height,age))
print("您的基础代谢率为{}大卡".format(gmr))
else:
print("暂不支持该性别!")
print()#输出空行
y_or_n = input("是否退出程序(退出请输入yes)?")
if __name__=="__main__":
main()
第一个功能的实现运用了.split() 函数。用户根据提示依次输入个人信息,用空格隔开。.split() 函数将str按空格分割,返回为一个带有用户信息的列表,用列表切片实现了对用户性别、体重、身高、年龄信息的提取;第二个功能的实现运用了.format() 函数,这是一个增强的格式化字符串函数,可以以“***大卡”的形式输出计算结果,当然也可以用 print(gmr,"大卡") 输出,不过这样不具有整体性。 print("您的性别为{},体重为{}kg,身高为{}cm,年龄为{}岁".format(gender,weight,height,age)) 这里也体现了.format() 函数的功能,还可以使系统界面更加友好。
4.0:处理异常操作问题。有些用户会不安套路,输入个人信息时不是系统的默认格式,这样系统就会报错,解决这样的异常操作,需要用到 try-except。
(1)输入体重、身高、年龄时输入汉子形式,这样用户信息就不能转化为整型和浮点型,会出现ValueError错误。
(2)用户输入信息不完整,系统无法提取有效信息,会出现IndexError错误。
除了以上两种错误,还可能出现一些无法预见的错误,为保证系统正常运行,需要用except将这些错误排除在执行计算程序。
def main():
y_or_n = input("是否退出程序(退出请输入yes,否则输入no)?")
while (y_or_n != "yes"):
print("请输入以下个人信息,中间用空格隔开")
person_str = input("性别:体重(kg):身高(cm):年龄:")
person = person_str.split(" ")
try:
gender = person[0]
weight = float(person[1])
height = float(person[2])
age = int(person[3])
if gender=="男":
gmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66
elif gender=="女":
gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655
else:
gmr = -1
if gmr!=-1:
print("您的性别为{},体重为{}kg,身高为{}cm,年龄为{}岁".format(gender,weight,height,age))
print("您的基础代谢率为{}大卡".format(gmr))
else:
print("暂不支持该性别!")
except ValueError:
print("请输入正确的个人信息!")
except IndexError:
print("请输入完整的个人信息!")
except:
print("系统有误!")
print() # 输出空行
y_or_n = input("是否退出程序(退出请输入yes)?")
if __name__=="__main__":
main()
python 基础代谢率计算_BMR计算(Python),的相关推荐
- python 基础代谢率计算_Python的学习笔记案例3--基础代谢率计算4.0
前面的3节课已经将BMR计算讲完,这一节主要讲解一下在遇到异常情况怎么处理? 下面是异常处理机制: --引入异常处理机制可以用来解决程序运行时的错误 语法: try: except: except: ...
- python 基础代谢率计算_0.数据结构(python语言) 基本概念 算法的代价及度量!!!...
先看思维导图: *思维导图有点简陋,本着循循渐进的思想,这小节的知识大多只做了解即可. *重点在于算法的代价及度量!!!查找资料务必弄清楚. 零.四个基本概念 问题:一个具体的需求 问题实例:针对问题 ...
- 《从问题到程序:用Python学编程和计算》——第2章 计算和编程初步 2.1 数值表达式和算术...
本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.1节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2 ...
- python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)
python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...
- 在Python中计算一次性计算多个百分位数percentile、quantile
在Python中计算一次性计算多个百分位数percentile. quantile 目录 在Python中计算一次性计算多个百分位数percentile. quantile
- python范数norm的计算
python范数norm的计算 https://www.cnblogs.com/devilmaycry812839668/p/9352814.html
- 《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计...
本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.1节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第3 ...
- 《从问题到程序:用Python学编程和计算》——3.4 定义函数
本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.4节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3. ...
- python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)
文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...
最新文章
- C/C++ 取整函数 ceil()、floor()、trunc()
- ubuntu18.04.4 下 pycharm 中 链接 已有的virtualenv
- VFP开发Dcom程序的注意事项
- 【学习OpenCV4】图像变换方法总结(放缩、翻转、旋转)
- PPP协议的配置(以H3C模拟器为例)
- css精灵图如何取图
- 企业信息管理系统(1)_系统页面框架分析
- 恶搞c语言小程序,用C语言做的 一个整人的小程序
- 电脑开机出现press f11 to start recovery system问题分析与解决
- 将Word文档转换成PPT教程
- 百度移动搜索优化指南2.0
- 阿里云服务器和腾讯云服务器优缺点分析
- 年会活动必备微信墙3D签到配置教程
- Web Audio API之手把手教你用web api处理声音信号:可视化音乐demo
- html游动文字如何设置颜色,pr游动字幕怎么做
- 支付宝手机网站支付实战踩坑
- 用python依赖地图公司的API接口和SDK实现道路数据可视化分析
- chmod不是内部或外部命令
- 你应该在你的域名中使用www吗?
- cs231n assignment答案