肥胖计算器(肥胖计算器小程序)
一起减脂吧
减脂与增重
开始减脂与增重之前先要明白的几个数值,坚持看完你也可以减肥成功。
*BMI值(身体质量指数)
BMI=体重KG(公斤)/身高平方(米)
BMI值:男性:18.5~24(正常)
过轻:<18.5
过重:≥24~27 男性腰围90CM(公分)女性腰围80CM(公分)
肥胖:≥27
BMI值计算器网址:https://cn.onlinebmicalculator.com/
*体脂率(非常重要即使体重高但是体脂率很低恭喜你全身都是肌肉)
体脂率=(1.2×BMI) (0.23×年龄)-(10.8×性别)-5.4(男为1,女为0)
成年人的正常体脂率分别为:
男性约为10%~20% 男性肥胖:>25%
女性约为17%~30% 女性肥胖:>33%
男性55岁 女性50岁 每5岁 体脂率可上调2%~3%
体脂率计算器网址:http://www.linear-software.com/online.html(体脂夹)
*心率
最高心率法:有氧运动最佳心率 =(最大心率)X(60% ~ 75%)
心率储备法:有氧运动最佳心率 =(最大心率 - 静息心率)X(60% ~ 75%) 静息心率
注:预测最大心率 = 220 - 实际年龄;心率的单位为bpm(心跳次数 / 分钟)。
提醒:这个测试不适用于儿童和心脏病等相关疾病患者。
实际锻炼减脂心率=(220-年龄)×70%~80%
心率计算网址:https://www.zxgj.cn/g/ranzhixinlv
*TDEE总热量消耗(非常重要)
TDEE=BMR(基础代谢) TEA(运动消耗) TEF(产热消耗)
久坐不动:TDEE=BMR×1.2
轻量运动(每周1~3天):TDEE=BMR×1.375
中度运动(每周3~5天):TDEE=BMR×1.55
高度运动(每周6~7天):TDEE=BMR×1.725
非常高度运动(每时每刻都在运动):TDEE=BMR×1.9
维持体重≥TDEE
增加体重≥TDEE 10%~20%
减肥减脂≤TDEE-20%~30%
增肌:碳水40%~50% 脂肪20%~30% 蛋白质30%
减脂:碳水30% 脂肪20%~30% 蛋白质40%~50%
碳水:1g=4卡路里
蛋白质:1g=4卡路里
脂肪:1g=9卡路里
可以下载健康饮食APP计算每天的热量摄入量
TDEE计算器 网址:https://www.peeta.tw/weight-loss/tdee-and-bmr/
https://tdeecalculator.net/
体型计算器:http://www.bmivisualizer.com/index?redirect_allowed=false
*总结:
根据以上数值假设一个男32岁,体重70kg,身高175cm,进行计算。
BMI值=70kg/(1.75×1.75)=22.85
体脂率=(1.2×22.85BMI) (0.23×32)-(10.8×1)-5.4=18.58%
实际锻炼减脂心率=(220-32)×70%~80%=131~150
TDEE总热量消耗=1610卡路里(维持基础消耗)
久坐不动:TDEE=BMR×1.2= 1932卡(每天)
轻量运动(每周1~3天):TDEE=BMR×1.375=2210.75卡(每天)
中度运动(每周3~5天):TDEE=BMR×1.55=2495.5卡(每天)
高度运动(每周6~7天):TDEE=BMR×1.725=2777.25卡(每天)
非常高度运动(每时每刻都在运动):TDEE=BMR×1.9=3059卡(每天)
根据TDEE计算碳水 脂肪 蛋白质 摄入量
例如增肌:碳水40%~50% 脂肪20%~30% 蛋白质30%
中度活动TDEE=2495.5卡(每天)×50%碳水=1247.75
×20%脂肪=499.1
×30%蛋白质=748.65
根据碳水:1g=4卡路里 蛋白质:1g=4卡路里 脂肪:1g=9卡路里
碳水=1247.75/4=311.93克 脂肪=499.1/9=55.45克 蛋白质=748.65/4=187.16克
这就是摄入的热量,下一步就是吃进去了和做运动了。OK
用tkinter编写一个BMI(身体质量指数)计算器
BMI计算器执行效果
代码如下:
import tkinter as tk
# 创建一个窗口
window = tk.Tk()
# 设置窗口标题、尺寸
window.title('BMI计算器')
window.geometry('400x400')
# 定义4个变量(对应4个输入框)
var1 = tk.StringVar()
var2 = tk.StringVar()
Bmi1 = tk.StringVar()
Bmi2 = tk.StringVar()
# 创建Lable:"身高"
label_height = tk.Label(window,text='身高',font=('隶书',20))
label_height.place(x=10,y=15,width=80,height=40)
# 创建身高的输入框:
entry_height = tk.Entry(window,textvariable=var1,font = ('隶书',20))
entry_height.place(x=90,y=15,width=80,height =40)
# 创建Lable:身高单位cm
label_cm = tk.Label(window,text='cm',font = ('隶书',20))
label_cm.place(x=170,y=15,width = 40,height=40)
# 创建Lable:"体重"
label_weight = tk.Label(window,text ='体重',font=('隶书',20))
label_weight.place(x=10,y=65,width=80,height=40)
# 创建体重的输入框
entry_weight = tk.Entry(window,textvariable=var2,font=('隶书',20))
entry_weight.place(x=90,y=65,width = 80,height=40)
# 创建Lable:体重单位kg
label_kg = tk.Label(window,text ='kg',font=('隶书',20))
label_kg.place(x=170,y=65,width=40,height=40)
def bmi():
# 公式 BMI=kg/(cm*cm)
bmi_set = round(float(entry_weight.get())/(float(entry_height.get())*float(entry_height.get()))*10000,2)
if bmi_set >=30:
result = (bmi_set)
abc = ('重度肥胖')
elif bmi_set >=28:
result = (bmi_set)
abc = ('肥胖')
elif bmi_set >= 24:
result = (bmi_set)
abc = ('超重')
elif bmi_set >= 18.5:
result = (bmi_set)
abc = ('正常')
else:
result = (bmi_set)
abc = ('偏瘦')
Bmi1.set('您的BMI值为:%s'%result)
Bmi2.set(abc)
# 创建Button按钮,计算
button_bmi = tk.Button(window,text = '计算BMI',font = ('隶书',20),command = bmi)
button_bmi.place(x = 50,y = 125,width = 300,height = 40)
# 创建计算结果的显示框
entry_bmi1=tk.Entry(window,textvariable = Bmi1,font=('隶书',20))
entry_bmi1.place(x = 30,y = 185,width = 340,height = 50)
entry_bmi2=tk.Entry(window,textvariable = Bmi2,font=('隶书',20))
entry_bmi2.place(x = 30,y = 235,width = 340,height = 50)
# 小提示label
label_kg = tk.Label(window,text ='18.5 < BMI <=24 为正常',font=('宋体',12))
label_kg.place(x=50,y=300,width=250,height=40)
# 循环
tk.mainloop()
用 Python 写一个计算肥胖指数的工具,原来开发就是这么简单
作者:林泽风 来源:知乎
Python 的 GUI 库 PySimpleGUI,写一个简单的有界面的小工具很简单!这里我们来写一个计算肥胖指数(BMI)的小工具。首先,通过百度得到 BMI 指数的计算公式为:
体重 / (身高的平方)体重单位为 kg, 身高的单位为 m
再查阅中国的 BMI 标准为:
分类BMI偏瘦<= 18.4正常18.5 ~ 23.9过重24.0 ~ 27.9肥胖>= 28.0
于是先写一个函数,用来计算 BMI。
首先呢,我们需要下载 PySimpleGUI
pip install PySimpleGUI
下好后,先不忙写代码,我们先画一下界面草图(一定要先画草图!):
好了,草图画好了,可以开始写代码了。
首先肯定要引入 PySimpleGUI:
import PySimpleGUI as sg
然后开始使用 PySimpleGUI 构造界面,在 PySimpleGUI 中将界面布局看作一个二维的表格。
根据上图,我们可以将 UI 划分为 5 行。
第一行,有一个 文本显示 ‘身高’, 还有一个文本输入框;
第二行,有一个 文本显示 ‘体重’, 还有一个文本输入框;
第三行,只有一个按钮;
第四行,一个文本显示 BMI 函数的运算结果;
第五行,一个按钮,用于退出程序。
在 PySimpleGUI 中要实现布局很简单,先构造一个二维的列表:
能看出点什么么?二维列表中的每个元素代表一行,子列表代表一行中的多个控件。
接下来,把构造的布局加入窗口中:
window = sg.Window('BMI计算器', layout, font='微软雅黑')
此时运行,一下,就可以看到界面啦!
接下来,我们再添加事件处理。
event, value = window.Read()
window.Read() 方法,用于读取页面上的事件和输入的数据。其返回值为(‘事件’, {0: ‘输入控件1接收的值’, 1: ‘输入控件2接受的值’})。
当我们点击计算 BMI按钮的时候,会接收到 submit 事件,这是在[sg.Button(‘计算 BMI’, key=‘submit’)]定义的。
那么接下来,当我们点击 submit ,也就是计算 BMI按钮,就调用计算 BMI 的函数,然后把函数的结果展示在界面的文本中。
好了,运行一下。
虽然能完成计算,但是当你点了按钮就结束了。因为界面只会执行一次。为了一直保持界面不关闭,就需要用 while 循环一直循环显示界面,当点击退出按钮时再退出循环,结束界面展示。
那么,完整代码如下:
import PySimpleGUI as sg def calc_bmi(h, w): try: h, w = float(h), float(w) bmi = round(w / h ** 2, 1) if bmi < 18.5: standard = '过轻' elif 18.5 <= bmi <= 23.9: standard = '正常' elif 24.0 <= bmi <= 27.9: standard = '过重' else: standard = '肥胖' except (ValueError, ZeroDivisionError): return None else: return f'BMI: {bmi}, {standard}' layout = [[sg.Text('身高'), sg.InputText(size=(15,))], [sg.Text('体重'), sg.InputText(size=(15,))], [sg.Button('计算 BMI', key='submit')], [sg.Text('', key='bmi', size=(20,2))], [sg.Quit('退出', key='q')]] window = sg.Window('BMI计算', layout, font='微软雅黑') while True: event, value = window.Read() if event == 'submit': bmi = calc_bmi(value[0], value[1]) if bmi: window.Element('bmi').Update(bmi, text_color='black') else: window.Element('bmi').Update('输入有误!', text_color='red') elif event == 'q': break window.Close()
欢迎大家关注我的头条号,私信“python",学习资料包免费分享给需要的朋友,另有python学习交流群,可以交流学习拓展人脉。