用户:
sky-*^O^*查看:0 回复:1 评论:0 创建时间:2021-12-11T12:55:31
【作品展示】

【作品介绍】
介绍:这是我的第一个tkinter库作品
希望能给大家带来帮助
希望能得到赞同
有什么问题欢迎大家提出
这样它才会越来越好
谢谢大家
版本更新:
1.改变了点π再点退格只剩p的问题
2.改变了乘方无法使用的bug(纯属粗心)
3.改进键盘无法输入的问题
现在只要不输 la=某某某就没事啦(原因自己想)
【作品源代码】
from tkinter import*
n=True
π=3.14159265358
ans = 0
win = Tk()
win.title('计算器')
win.iconbitmap('计算器图标.ico')
la = Entry(master=win, width=30, bg='#fff8dc', font=('kaiti', 20))
la.grid(column=0, row=0, columnspan=4, ipady=25)
las = ''
def add(d):
global la,las,n
if n:
las=la.get()
g = las+str(d)
la.delete(0, 'end')
la.insert(0, g)
las += str(d)
def cle():
global la, las
la.delete(0, 'end')
las = ''
def ba():
global la, las
g = las[:len(las)-1]
la.delete(0, 'end')
la.insert(0, g)
las = las[:len(las)-1]
def ok():
global la, las, ans,n
las=las.replace('^','**')
try:
g = las
la.delete(0, 'end')
ans = eval(g)
la.insert(0, ans)
las = ''
except:
la.delete(0, 'end')
la.insert(0, 'error')
ans = 'error'
las = ''
n=False
Button(master=win, font=('kaiti', 20), height=3, width=7,
bg='brown', text='clear', command=cle).grid(column=0, row=1)
Button(master=win, font=('kaiti', 20), height=3, width=7,
bg='brown', text='back', command=ba).grid(column=1, row=1)
Button(master=win, font=('kaiti', 20), height=3, width=7,
bg='brown', text='=', command=ok).grid(column=3, row=6)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='ans', command=lambda: add(ans)).grid(column=2, row=6)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='(', command=lambda: add('(')).grid(column=0, row=2)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text=')', command=lambda: add(')')).grid(column=1, row=2)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='×', command=lambda: add('*')).grid(column=2, row=2)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='÷', command=lambda: add('/')).grid(column=3, row=2)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='-', command=lambda: add('-')).grid(column=3, row=3)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='+', command=lambda: add('+')).grid(column=3, row=4)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='.', command=lambda: add('.')).grid(column=3, row=5)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='π', command=lambda: add('π')).grid(column=0, row=6)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='0', command=lambda: add('0')).grid(column=1, row=6)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='(-)', command=lambda: add('-')).grid(column=2, row=1)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text='^', command=lambda: add('^')).grid(column=3, row=1)
for p in range(3):
for l in range(3):
u = str(p*3+l+1)
Button(master=win, font=('kaiti', 20), height=3, width=7, bg='brown',
text=p*3+l+1, command=lambda u=u: add(u)).grid(column=l, row=p+3)
win.resizable(False, False)
mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn