def 小児科医():

かけだし小児科医が仕事の合間にプログラミングを勉強するブログです。

必要カロリーを計算するアプリ

4月から心機一転、ダイエットをしたいと思いました。

 

世の中にダイエットアプリってめちゃくちゃあって、かなり便利なのですが、

今回はあえてそれを自分で作りたい。

食事内容を入力して、成分を計算して必要カロリーを超えていないか判断してくれるようなもの。体重とかもグラフにしたい。

ということで頑張ったのだが、

import math
import pandas as pd
from tkinter import *
import tkinter.messagebox as mb
import tkinter.simpledialog as sd
import tkinter.ttk as ttk

df_info=pd.read_csv("食事表.csv", parse_dates=[0])

root = Tk()
root.title('自己管理アプリ') # 画面タイトル設定
root.geometry('500x500') # 画面サイズ設定
root.resizable(False, False) # リサイズ設定

frame1 = Frame(root, width=500, height=250, borderwidth=2, relief='solid')
frame2 = Frame(root, width=500, height=250, borderwidth=2, relief='solid')


# フレームを配置(grid
frame1.grid(row=0, column=0)
frame2.grid(row=1, column=0)

# フレームサイズを固定
frame1.propagate(False)
frame2.propagate(False)



# label(フレーム左上)
label_1a = Label(frame1, text='体重を入力してください', font=('', 14))

label_1a.pack()

#必要カロリーを計算する関数
def control():
BW =float(entry_2b.get())
# TDR=BMR*AF*SF

# BMRはハリスベネディクトで計算

IBW = 1.66 ** 2 * 22
if BW > IBW:
cBW = IBW
else:
cBW = BW

BMR = 66.47 + (13.75 * cBW) + (5 * 「身長」) - (6.76 * 「年齢)
AF = 1.75
SF = 1
TDR = math.floor(BMR * AF * SF)
intake = math.floor(TDR - 500)

# タンパク質1g/kg
TP = BW * 4
gram_TP = math.floor(BW)

# 脂質はintake25%
FA = intake * 0.25
gram_FA = math.floor(FA / 9)

# 炭水化物は残り
Ca = intake - TP - FA
gram_Ca = math.floor(Ca / 4)

label_2b = Label(frame1, text="一日必要カロリーは" + str(TDR) + "です\n一日摂取カロリーは" + str(intake)
+ "です\n炭水化物は" + str(gram_Ca) + "gまで\nタンパク質は" + str(gram_TP)
+ "gまで\n脂質は" + str(gram_FA) + "gまで", font=('', 14))
label_2b.pack()


entry_2b = Entry(frame2, width=14)
button_2b = Button(frame2, text='決定', cursor='hand2', command=control)
combobox = ttk.Combobox(frame1, height=3, values=list(df_info["商品名"]))

#配置
entry_2b.pack()
button_2b.pack()
combobox.pack()


root.mainloop()

 

全然進んでないけどちょっと今日は疲れたのでここまで

今回は完全自分用で、「身長」と「年齢」は実数入れてるので秘密(活動係数とストレス係数も本当は人によって違うので変数)。

とりあえずは

体重計算→カロリー表示

その後に、

プルダウンで今まで食べた食事が表示されて選べるようにしたい。

が、プルダウンも初めから表示されてしまってるので、フレームを一旦消去しなきゃいけないんですかね。

 

また修正します。

 

そういえば、活動係数1.75にしたけどプログラミングって消費カロリーどうなんだろう。

 

…座りっぱなしだから低そうだな笑

 

参考文献:「医師1年目からの わかる、できる!栄養療法 〜患者にあわせた投与ルートや輸液・栄養剤の選択など、根拠をもって実践するためのキホン」

→小児科の本じゃないけど小児科になってから買った本。たまにつかう。たまに。