見出し画像

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()

実行

数字入れて、計算ボタンをクリックしてみる。

数字はあっている。でも・・・(笑)
レイアウトとか、勉強したら、きっと見た目もカッコよくできるはず。

いいなと思ったら応援しよう!