基础代谢率的计算是一个公式,男性和女性的计算不同,根据基本的计算公式可以用Python代码实现不同的功能。

1.0:简单的计算器,根据给定的具体数据进行计算。根据输入的性别不同进行判断(输入的性别必须为“男”或“女”,否则报错),男性和女性分别执行不同的计算。

def main():gender = "男"weight = 70height = 175age = 25if gender=="男":gmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66elif gender=="女":gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655else:gmr =- 1if 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 + 66elif gender=="女":gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655else:gmr = -1if 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 + 66elif gender=="女":gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655else:gmr = -1if 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 + 66elif gender=="女":gmr = 9.6 * weight + 3.8 * height - 4.7 * age + 655else:gmr = -1if 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()

BMR的计算(Python)相关推荐

  1. (三)基础代谢率bmr的计算2.0---str、float、int类型转换

    案例描述: • 基础代谢率( Basal Metabolic Rate, 简称BMR)是指:我们在安静状 态下( 通常为静卧状态)消耗的最低热量,人的其他活动都建立在 这个基础上. • 计算公式: B ...

  2. (三)基础代谢率bmr的计算4.0-----异常处理机制

    异常处理机制 • 引入异常处理机制可以用来解 决程序运行时的错误 • 语法 try:<body> except <ErrorType1>:<handler1> ex ...

  3. 计算Python的代码块或程序的运行时间

    1.运用场景 在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间.下面我们就来说说怎么统计程序的运行时间. 2. 实现方法 计算Python的某个程序,或者是代码块运行的时 ...

  4. 皮尔逊相关系数的计算(python代码版)

    皮尔逊相关系数的计算(python代码版) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 fro ...

  5. 计算Python Numpy向量之间的欧氏距离

    计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下: import numpydist = numpy.sqrt(numpy.sum(nump ...

  6. python算两个点的距离公式_计算Python Numpy向量之间的欧氏距离实例

    计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下: import numpy dist = numpy.sqrt(numpy.sum(num ...

  7. 怎么计算python程序执行时间_【华为云技术分享】计算python程序执行时间

    写代码的时候,我们可能想知道python的执行效率如何,有如下几种方法可以计算python程序执行时间. 1.方法1 import datetime starttime = datetime.date ...

  8. 【华为云技术分享】计算python程序执行时间

    写代码的时候,我们可能想知道python的执行效率如何,有如下几种方法可以计算python程序执行时间. 1.方法1 import datetimestarttime = datetime.datet ...

  9. 皮尔森相关性系数的计算python代码(一)

    部分代码 from math import sqrt import numpy as np import pandas as pddef excel_one_line_to_list():def mu ...

  10. python计算向量的模_计算Python Numpy向量之间的欧氏距离实例

    计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:import numpy dist = numpy.sqrt(numpy.sum(nump ...

最新文章

  1. 计算机统考408卷子谁批,【计算机统考】你对计算机统考408了解有多少?
  2. 蓝牙杂散超标_杂散发射
  3. Linux I2C子系统分析-I2C总线驱动
  4. 史上最强福利,阿里云半价+Plesk免费2万台速抢!
  5. 从SQL过渡至MongoDB查询对照表
  6. Spark之SparkStreaming的DStream操作
  7. 由char* 引发的Segmentation fault错误
  8. RedHat7 安装 MySQL 5.7
  9. 使用线程模拟解决银行排队叫号问题
  10. 计算机硬盘格式化了如何恢复出厂设置,怎么把电脑格式化?
  11. 在线log计算机,log换算(log计算器在线)
  12. java 验证码不显示,页面没有显示验证码解决办法
  13. 学习Java用英文教材
  14. 好心情:22个表达好心情的经典句子,送给抑郁焦虑的你
  15. 小红书笔记api_小红书学习笔记
  16. A Prompting-based Approach for Adversarial Example Generation andRobustness Enhancement
  17. 2018沈阳k(经典的约瑟夫环)
  18. html中怎么设置图片平铺,css怎么把图片平铺?
  19. 解决使用webstorm新建vue项目时‘gyp: No Xcode or CLT version detected!’报错
  20. Java设计模式之五大创建型模式

热门文章

  1. 如何快速查询极兔快递并设置参数?
  2. java邮件登录系统设计_基于Java web的邮件管理系统的设计与实现(含源文件).doc
  3. 微信小程序-申领福利老客邀请新客之间的逻辑判断
  4. python selenium 教程(-) 安装
  5. 这可能是你见过的最全的SaaS行业分析
  6. auto.js 公众号自动签到
  7. CentOS防攻击设置
  8. 2016/10/20
  9. lisp的vla函数画矩形_AutoLISP反应器vlr-object-reactor函数应用
  10. 134个治病小偏方,从此不用去医院 - 生活至上,美容至尚!