猫史档案馆


【Python作品分享】计算器2.0【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

介绍:

这是我的第一个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


回复

上一页1 页 / 共 1下一页
sky-*^O^*sky-*^O^*

back:退格

clear:清空

ans:上次结果

点赞0


评论