BMR的计算(Python)
基础代谢率的计算是一个公式,男性和女性的计算不同,根据基本的计算公式可以用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)相关推荐
- (三)基础代谢率bmr的计算2.0---str、float、int类型转换
案例描述: • 基础代谢率( Basal Metabolic Rate, 简称BMR)是指:我们在安静状 态下( 通常为静卧状态)消耗的最低热量,人的其他活动都建立在 这个基础上. • 计算公式: B ...
- (三)基础代谢率bmr的计算4.0-----异常处理机制
异常处理机制 • 引入异常处理机制可以用来解 决程序运行时的错误 • 语法 try:<body> except <ErrorType1>:<handler1> ex ...
- 计算Python的代码块或程序的运行时间
1.运用场景 在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间.下面我们就来说说怎么统计程序的运行时间. 2. 实现方法 计算Python的某个程序,或者是代码块运行的时 ...
- 皮尔逊相关系数的计算(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 ...
- 计算Python Numpy向量之间的欧氏距离
计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下: import numpydist = numpy.sqrt(numpy.sum(nump ...
- python算两个点的距离公式_计算Python Numpy向量之间的欧氏距离实例
计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下: import numpy dist = numpy.sqrt(numpy.sum(num ...
- 怎么计算python程序执行时间_【华为云技术分享】计算python程序执行时间
写代码的时候,我们可能想知道python的执行效率如何,有如下几种方法可以计算python程序执行时间. 1.方法1 import datetime starttime = datetime.date ...
- 【华为云技术分享】计算python程序执行时间
写代码的时候,我们可能想知道python的执行效率如何,有如下几种方法可以计算python程序执行时间. 1.方法1 import datetimestarttime = datetime.datet ...
- 皮尔森相关性系数的计算python代码(一)
部分代码 from math import sqrt import numpy as np import pandas as pddef excel_one_line_to_list():def mu ...
- python计算向量的模_计算Python Numpy向量之间的欧氏距离实例
计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:import numpy dist = numpy.sqrt(numpy.sum(nump ...
最新文章
- 计算机统考408卷子谁批,【计算机统考】你对计算机统考408了解有多少?
- 蓝牙杂散超标_杂散发射
- Linux I2C子系统分析-I2C总线驱动
- 史上最强福利,阿里云半价+Plesk免费2万台速抢!
- 从SQL过渡至MongoDB查询对照表
- Spark之SparkStreaming的DStream操作
- 由char* 引发的Segmentation fault错误
- RedHat7 安装 MySQL 5.7
- 使用线程模拟解决银行排队叫号问题
- 计算机硬盘格式化了如何恢复出厂设置,怎么把电脑格式化?
- 在线log计算机,log换算(log计算器在线)
- java 验证码不显示,页面没有显示验证码解决办法
- 学习Java用英文教材
- 好心情:22个表达好心情的经典句子,送给抑郁焦虑的你
- 小红书笔记api_小红书学习笔记
- A Prompting-based Approach for Adversarial Example Generation andRobustness Enhancement
- 2018沈阳k(经典的约瑟夫环)
- html中怎么设置图片平铺,css怎么把图片平铺?
- 解决使用webstorm新建vue项目时‘gyp: No Xcode or CLT version detected!’报错
- Java设计模式之五大创建型模式