import tkinter
Mywindow = tkinter.Tk()
Mywindow.geometry("280x500")
Mywindow.title("nancy牌電腦")
express = "" # 表達式變量
def press(num):
global express
express = express+num # 表達式加上新按的按鈕數字
la2['text'] = express
def equal():
global express
result = eval(express) # eval計算表達式
la['text'] = result
# 有清除功能的函數 express =""
def clear():
global express
express ="" # 清空表達式
la2['text'] = express # 重新整理表達式
# 有倒退函數的功能
def delete():
global express # 全局express 變量
express = express[0:len(express)-1] # 去除最後一個字元
la2['text'] = express
la = tkinter.Label(
Mywindow,
text="result",
font=("Arial", 20),
bg="#ADD8E6",
fg="black",
anchor="se", # anchor 船錨 north south west east
)
la.place(x=0, y=0, width=280, height=170)
la2 = tkinter.Label(
Mywindow,
text="equal",
font=("Arial", 20),
bg="#ADD8E6",
fg="black",
anchor="se",
)
la2.place(x=0, y=170, width=280, height=60)
def btn(text, x, y, w=70, h=55,):
Btn = tkinter.Button(
Mywindow,
text=text,
font=("Airal", 20),
fg="black",
bg='#DCDCDC',
bd=0.5,
command = lambda:press(text)
)
Btn.place(x=x, y=y, width=w, height=h)
btn("/", 140, 230)
btn('*', 210, 230)
btn('7', 0, 285)
btn('8', 70, 285)
btn('9', 140, 285)
btn('-', 210, 285)
btn('4', 0, 340)
btn('5', 70, 340)
btn('6', 140, 340)
btn('+', 210, 340)
btn('1', 0, 395)
btn('2', 70, 395)
btn('3', 140, 395)
# btn('=', 210, 395, h=110)
btnE = tkinter.Button(
Mywindow,
text='=',
font=("Airal", 20),
fg="black",
bg='#DCDCDC',
bd=0.5,
command = equal
)
btnE.place(x=210, y=395, width=70, height=110)
# btn("AC", 0, 230)
btnA = tkinter.Button(
Mywindow,
text='AC',
font=("Airal", 20),
fg="black",
bg='#DCDCDC',
bd=0.5,
command = clear
)
btnA.place(x=0,y=230,width=70,height=55)
# btn("DEL", 70, 230)
btnD = tkinter.Button(
Mywindow,
text='DEL',
font=("Airal", 20),
fg="black",
bg='#DCDCDC',
bd=0.5,
command = delete
)
btnD.place(x=70,y=230,width=70,height=55)
btn('%', 0, 450, w=35)
btn('.', 35, 450, w=35)
btn('0', 70, 450)
btn('(', 140, 450, w=35)
btn(')', 175, 450, w=35)
Mywindow.mainloop()