Tkinterやってみる(3)
Udemyの動画「tkinter で 10 個のアプリを作成して Python を学習する」
のうち、「Tkinterの基本」の章の
・1ウィンドウとウィジェット
・設定とデータの取得
・Tkinter変数
まで見終えました。
動画教材のコードを、そのままここに書くわけにはいかないでしょう。ネタはどうしようか。Xを見ていたところ、かろてんさんの、こんな興味深いマンガを見かけました。
こちらに出てくる
この「利子計算ツール」なら、ここまでの知識で作れるかも?
・・って、こういう時の複利計算は10日経過ごとに規定の利子が複利で発生、ということでいいんでしょうか?
元金100000円、
10日経過150000円
20日経過225000円
30日経過337500円
40日経過506250円
50日経過759375円
マンガ中のアプリの例が、60日で結果が759375円となっていることから見て、日数に入力しているのは初日を含めた日数ということですかね。
つまり、60日なら、利子計算には初日を除外して「59日間」、10で割ってあまり切り捨てで5、結果は、元金×1.5^5 で 759375円 という計算なのかな?そういう解釈でいきましょう。
でっち上げたコード
import tkinter as tk
from tkinter import ttk
def button_calc():
gankin = int(entry_gankin.get())
riritsu = float(entry_riritsu.get())
nissu = int(entry_nissu.get())
kekka = gankin * pow(1.0+riritsu/10.0, (nissu-1)//10)
label_kekka['text'] = round(kekka)
window = tk.Tk()
window.title("利子計算ツール")
window.geometry("300x300")
#元金
label_gankin_h = ttk.Label(master = window, text = "元金")
label_gankin_h.pack()
entry_gankin = ttk.Entry(master = window)
entry_gankin.pack()
label_gankin_f = ttk.Label(master = window, text = "円")
label_gankin_f.pack()
#利率
label_riritsu_h = ttk.Label(master = window, text = "利率")
label_riritsu_h.pack()
entry_riritsu = ttk.Entry(master = window)
entry_riritsu.pack()
label_riritsu_f = ttk.Label(master = window, text = "割/10日")
label_riritsu_f.pack()
#日数
label_nissu_h = ttk.Label(master = window, text = "日数")
label_nissu_h.pack()
entry_nissu = ttk.Entry(master = window)
entry_nissu.pack()
label_nissu_f = ttk.Label(master = window, text = "日")
label_nissu_f.pack()
#計算
button = ttk.Button(master = window, text = "計算", command = button_calc)
button.pack()
#結果
label_kekka_h = ttk.Label(master = window, text = "結果")
label_kekka_h.pack()
label_kekka = ttk.Label(master = window, text = " ")
label_kekka.pack()
label_kekka_f = ttk.Label(master = window, text = "円")
label_kekka_f.pack()
#mainloop
window.mainloop()
実行
数字入れて、計算ボタンをクリックしてみる。
数字はあっている。でも・・・(笑)
レイアウトとか、勉強したら、きっと見た目もカッコよくできるはず。