
前回に引き続き、Python初心者がTkinterを使って、BMI判定ツールの作成を手がけております。2日目ですが、何事も継続が大事ですww。
前回は、
こんな感じでGUIがしょぼい。。。
ので今回少しですが、改良をしています。
追加した機能は、
- 23~27行目、年齢入力box
- 58行目、適正体重=(身長m)^2*22
- 59行目、肥満度計算=(体重/適正体重)*100-100 ←体重が適正体重を下回った場合、マイナスで算出するため
- 61行目、小数点第3位以下を四捨五入
- 64行目、ダイアログに、BMI、標準BMI、肥満度を表示
です。
61行目、小数点第3位を四捨五入
round(小数, 小数点以下で残したい桁数)
1 2 |
>>> round(1.26, 1) 1.3 |
例えば、上記の例だと、小数点第2位を四捨五入
64行目、ダイアログに、BMI、標準BMI、肥満度を表示
format関数で文字列を書いています。
使い方
“文字列{}”.format(変数)
1 2 3 4 5 |
>>> apple = 100 >>> apple 100 >>> "りんごの値段は{}円".format(apple) 'りんごの値段は100円' |
以下がコードとなっています。
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# Tkinterのライブラリを取り込む --- (*1) import tkinter as tk from tkinter import messagebox as mbox # ウィンドウを作成 --- (*2) win = tk.Tk() win.title("BMI") # タイトル win.geometry("300x300") # サイズ # 名前を作成 # ラベルを作成 labelName = tk.Label(win, text='名前は?') # packで作成した部品をウィンドウ上に配置できる labelName.pack() # テキスト入力ボックスを作成 textName = tk.Entry(win) textName.pack() # insertで初期値を指定できる textName.insert(tk.END, '田中') #年齢 labelAge = tk.Label(win, text="年齢は?") labelAge.pack() textAge = tk.Entry(win) textAge.pack() textAge.insert(tk.END, 23) # 身長を作成 # 名前と同じ流れで作成 labelHeight = tk.Label(win, text="身長は?") labelHeight.pack() textHeight = tk.Entry(win) textHeight.pack() # textHeight.insert(tk.END, 'cm単位で記入') textHeight.insert(tk.END, 177) # 体重を作成 # 名前と同じ流れで作成 labelWeight = tk.Label(win, text="体重は?") labelWeight.pack() textWeight = tk.Entry(win) textWeight.pack() # textWeight.insert(tk.END, 'Kg単位で記入') textWeight.insert(tk.END, 66) # OKボタンを押した時 --- (*3) # 変数okButtonの引数であるcommandを関数名として記述し、その後の処理を書く def ok_click(): # テキストボックスの内容を得る name = textName.get() # ダイアログを表示 # mbox.showinfo('挨拶', name + 'さん、こんにちは!') height = float(textHeight.get())/100 weight = float(textWeight.get()) right_weight = (height)**2*22 per = int(weight / right_weight * 100) - 100 #少数第3位を四捨五入 BMI = round(weight/(height*height), 2) # ダイアログを表示 mbox.showinfo("BMI", "貴方のBMIは{}".format(BMI)+"\n標準BMIは22です"+"\n貴方の肥満度は{}%".format(per)) # ボタンを作成 --- (*4) okButton = tk.Button(win, text='OK', command=ok_click) okButton.pack() # ウィンドウを動かす --- (*3) win.mainloop() |
これを実行すると、
OKボタンを押したら、結果がこちら↓
、、、ちょっと改善されてますww。
引き続き、勉強を進めていきたいと思います。年齢や性別などで肥満度など影響がありそうなので、勉強しつつ追加していきます。また、GUIの部分をもっとオシャレにしてきたいですね。。とはいえ、Tkinterに少しずつ慣れてきました。
閲覧していただいた方ありがとうございます。
コメント