import tkinter as tk
from tkinter import *
import math
from sympy import sympify
tk=Tk()
tk.title("hesap Makinası")
tk.geometry("350x3500")
tk.configure(background="black")
tablo=["C","%","√","÷","1","2","3","*","4","5","6","-","7","8","9","+",".","0","⌫","="]
buton=[]
x_konum = 60
y_konum = 900
#işlemlerin göründüğü yer
ekrani=Label(tk,text="İşlemler :",font="Arial 20 bold",fg="magenta",bg="black",bd=10)
ekrani.place(x=0,y=180)
ekranit = Label(tk, text="", font="Arial 20 bold", fg="white", bg="black", anchor="e")
ekranit.place(x=10, y=350, width=780, height=150)
#sonuç kısmı
ekrans=Label(tk,text="Sonuç :",font="Arial 20 bold",fg="orange",bg="black",anchor="s")
ekrans.place(x=0,y=475)
result=Label(tk,text="",font="Arial 20 bold",fg="white",bg="black")
result.place(x=10,y=675)
def yüzdeal(txt):
yüz=txt
syüz=""
for v in yüz:
if v !="%":
syüz=syüz+v
else:
syüz=syüz+"*"
#result["text"]=float(sympify(syüz)/100)
s100=float(eval(syüz)/100)
syüzz= f"{s100:,.2f}".replace(",", "X").replace(".", ",").replace("X", ".")
result["text"]=syüzz
#result["text"]=float(eval(syüz)/100)
def kökal(kök):
k=int(bilgi[1:])
kk=round(float(math.sqrt(k)),2)
kkk = f"{kk:,.2f}".replace(",", "X").replace(".", ",").replace("X", ".")
result["text"]=kkk
#result["text"]=round(float(math.sqrt(k)),2)
giris=""
bilgi=""
def hesapla():
global giris
global bilgi
try:
# '% ve √ işareti için özel durum
for i in giris:
if i=="%":
yüzdeal(bilgi)
return
elif i=="√":
kökal(bilgi)
return
#giris = giris.replace("%", "/100")
sonuc = str(eval(giris))
fsonuc=int(sonuc)
formatted = f"{fsonuc:,.2f}".replace(",", "X").replace(".", ",").replace("X", ".")
result.config(text=formatted)
#result.config(text=sonuc)
giris = sonuc
except:
result.config(text="Hata")
giris = ""
def temizle():
global giris
giris = ""
ekranit.config(text="")
result.config(text="")
def islem(karakter):
global giris
global bilgi
if karakter=="⌫":
giris=giris[:-1]
ekranit.config(text=giris)
else:
giris += str(karakter)
ekranit.config(text=giris)
bilgi=giris
sayi = 0
for i in range(5):
for j in range(1,5):
text=tablo[sayi]
if text == '=':
command = hesapla
elif text == 'C':
command = temizle
else:
command = lambda txt=text: islem(txt)
if not tablo[sayi].isdigit():
Button(tk,text=text,font="Arial 20 bold",bg="green",fg="white",bd=15,activebackground="red",activeforeground="white",command=command).place(x=x_konum, y=y_konum, width=200, height=200)
else:
Button(tk,text=text,font="Arial 20 bold",bg="black",fg="white",bd=15,activebackground="orange",command=command).place(x=x_konum, y=y_konum, width=200, height=200)
sayi += 1
x_konum += 250
x_konum = 60
y_konum += 250
tk.mainloop()