猫史档案馆


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

用户:Fm2Fm2查看:1 回复:2 评论:1 创建时间:2019-08-12T17:44:51


【作品展示】

center_image

 

【作品介绍】

就是……计算器

 

【作品源代码】

import tkinter
root = tkinter.Tk()
root.minsize(280, 500)
root.title('计算器')
result = tkinter.StringVar()
result.set(0)
result2 = tkinter.StringVar()
result2.set('')
label = tkinter.Label(root, font=('微软雅黑', 20), bg='#EEE9E9',
                      bd='9', fg='#828282', anchor='se', textvariable=result2)
label.place(width=280, height=170)
label2 = tkinter.Label(root, font=('微软雅黑', 30), bg='#EEE9E9',
                       bd='9', fg='black', anchor='se', textvariable=result)
label2.place(y=170, width=280, height=60)
btn7 = tkinter.Button(root, text='7', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('7'))
btn7.place(x=0, y=285, width=70, height=55)
btn8 = tkinter.Button(root, text='8', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('8'))
btn8.place(x=70, y=285, width=70, height=55)
btn9 = tkinter.Button(root, text='9', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('9'))
btn9.place(x=140, y=285, width=70, height=55)

btn4 = tkinter.Button(root, text='4', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('4'))
btn4.place(x=0, y=340, width=70, height=55)
btn5 = tkinter.Button(root, text='5', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('5'))
btn5.place(x=70, y=340, width=70, height=55)
btn6 = tkinter.Button(root, text='6', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('6'))
btn6.place(x=140, y=340, width=70, height=55)

btn1 = tkinter.Button(root, text='1', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('1'))
btn1.place(x=0, y=395, width=70, height=55)
btn2 = tkinter.Button(root, text='2', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('2'))
btn2.place(x=70, y=395, width=70, height=55)
btn3 = tkinter.Button(root, text='3', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('3'))
btn3.place(x=140, y=395, width=70, height=55)
btn0 = tkinter.Button(root, text='0', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressNum('0'))
btn0.place(x=70, y=450, width=70, height=55)
btnac = tkinter.Button(root, text='AC', bd=0.5, font=(
    '黑体', 20), fg='orange', command=lambda: pressCompute('AC'))
btnac.place(x=0, y=230, width=70, height=55)
btnback = tkinter.Button(root, text='←', font=(
    '微软雅黑', 20), fg='#4F4F4F', bd=0.5, command=lambda: pressCompute('b'))
btnback.place(x=70, y=230, width=70, height=55)
btndivi = tkinter.Button(root, text='÷', font=(
    '微软雅黑', 20), fg='#4F4F4F', bd=0.5, command=lambda: pressCompute('/'))
btndivi.place(x=140, y=230, width=70, height=55)
btnmul = tkinter.Button(root, text='×', font=(
    '微软雅黑', 20), fg="#4F4F4F", bd=0.5, command=lambda: pressCompute('*'))
btnmul.place(x=210, y=230, width=70, height=55)
btnsub = tkinter.Button(root, text='-', font=('微软雅黑', 20),
                        fg=('#4F4F4F'), bd=0.5, command=lambda: pressCompute('-'))
btnsub.place(x=210, y=285, width=70, height=55)
btnadd = tkinter.Button(root, text='+', font=('微软雅黑', 20),
                        fg=('#4F4F4F'), bd=0.5, command=lambda: pressCompute('+'))
btnadd.place(x=210, y=340, width=70, height=55)
btnequ = tkinter.Button(root, text='=', bg='orange', font=(
    '微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda: pressEqual())
btnequ.place(x=210, y=395, width=70, height=110)
btnper = tkinter.Button(root, text='%', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressCompute('%'))
btnper.place(x=0, y=450, width=70, height=55)
btnpoint = tkinter.Button(root, text='.', font=('微软雅黑', 20), fg=(
    '#4F4F4F'), bd=0.5, command=lambda: pressCompute('.'))
btnpoint.place(x=140, y=450, width=70, height=55)
lists = []
isPressSign = False
isPressNum = False
def pressNum(num):
    global lists
    global isPressSign
    if isPressSign == False:
        pass
    else:
        result.set(0)
        isPressSign = False
    oldnum = result.get()
    if oldnum == '0':
        result.set(num)
    else:
        newnum = oldnum + num
        result.set(newnum)
def pressCompute(sign):
    global lists
    global isPressSign
    num = result.get()
    lists.append(num)
    lists.append(sign)
    isPressSign = True
    if sign == 'AC':
        lists.clear()
        result.set(0)
    if sign == 'b':
        a = num[0:-1]
        lists.clear()
        result.set(a)
def pressEqual():
    global lists
    global isPressSign
    curnum = result.get()
    lists.append(curnum)
    computrStr = ''.join(lists)
    endNum = eval(computrStr)
    result.set(endNum)
    result2.set(computrStr)
    lists.clear()
root.mainloop()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
银天X银天X

完了我喵了
这里面全是大佬
瑟瑟发抖

点赞0


评论


Fm2Fm2

这是某贴大佬制作的Python计算器,不是我做的!(强调)

点赞0


评论