基础代谢率的计算是一个公式,男性和女性的计算不同,根据基本的计算公式可以用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),的相关推荐

  1. python 基础代谢率计算_Python的学习笔记案例3--基础代谢率计算4.0

    前面的3节课已经将BMR计算讲完,这一节主要讲解一下在遇到异常情况怎么处理? 下面是异常处理机制: --引入异常处理机制可以用来解决程序运行时的错误 语法: try: except: except: ...

  2. python 基础代谢率计算_0.数据结构(python语言) 基本概念 算法的代价及度量!!!...

    先看思维导图: *思维导图有点简陋,本着循循渐进的思想,这小节的知识大多只做了解即可. *重点在于算法的代价及度量!!!查找资料务必弄清楚. 零.四个基本概念 问题:一个具体的需求 问题实例:针对问题 ...

  3. 《从问题到程序:用Python学编程和计算》——第2章 计算和编程初步 2.1 数值表达式和算术...

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.1节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2 ...

  4. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)

    python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...

  5. 在Python中计算一次性计算多个百分位数percentile、quantile

    在Python中计算一次性计算多个百分位数percentile. quantile 目录 在Python中计算一次性计算多个百分位数percentile. quantile

  6. python范数norm的计算

    python范数norm的计算 https://www.cnblogs.com/devilmaycry812839668/p/9352814.html

  7. 《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计...

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.1节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第3 ...

  8. 《从问题到程序:用Python学编程和计算》——3.4 定义函数

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.4节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3. ...

  9. python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)

    文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...

最新文章

  1. C/C++ 取整函数 ceil()、floor()、trunc()
  2. ubuntu18.04.4 下 pycharm 中 链接 已有的virtualenv
  3. VFP开发Dcom程序的注意事项
  4. 【学习OpenCV4】图像变换方法总结(放缩、翻转、旋转)
  5. PPP协议的配置(以H3C模拟器为例)
  6. css精灵图如何取图
  7. 企业信息管理系统(1)_系统页面框架分析
  8. 恶搞c语言小程序,用C语言做的 一个整人的小程序
  9. 电脑开机出现press f11 to start recovery system问题分析与解决
  10. 将Word文档转换成PPT教程
  11. 百度移动搜索优化指南2.0
  12. 阿里云服务器和腾讯云服务器优缺点分析
  13. 年会活动必备微信墙3D签到配置教程
  14. Web Audio API之手把手教你用web api处理声音信号:可视化音乐demo
  15. html游动文字如何设置颜色,pr游动字幕怎么做
  16. 支付宝手机网站支付实战踩坑
  17. 用python依赖地图公司的API接口和SDK实现道路数据可视化分析
  18. chmod不是内部或外部命令
  19. 你应该在你的域名中使用www吗?
  20. cs231n assignment答案

热门文章

  1. vue项目中自动拉取更新Iconfont(阿里巴巴图标库)
  2. 钱数转换(转换成:XX万,XX亿)
  3. mac本地忘记mysql数据库密码解决方案
  4. centos开启服务器端口
  5. python--计算两个中文字符串的编辑距离
  6. MIKE水动力笔记13_数字化海图2之克里金插值
  7. matlab中求分段函数的分段点,matlab求解分段函数问题是如何用下面的算法求解下面的分段函数 爱问知识人...
  8. MATLAB 保存图片白色
  9. Java 线程安全的集合
  10. laravel —— 神奇的服务容器