用户:
爱玩系统的老徐查看:0 回复:0 评论:0 创建时间:2022-03-29T15:13:56
【作品展示】

【作品介绍】
用 tkinter 库编的一个简易计算器
【作品源代码】
import tkinter,time
root = tkinter.Tk()
root.minsize(280, 500)
root.resizable(False,False)
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=('Calibri', 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, bg='orange', font=('宋体', 20), fg='#4F4F4F', command=lambda: pressCompute('AC'))
btnac.place(x=0, y=230, width=70, height=55)
btnback = tkinter.Button(root, text='←', bg='yellow', font=('Calibri', 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='÷', bg='yellow', 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='×', bg='yellow', 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='-', bg='yellow', 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='+', bg='yellow', 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)
result2.set('')
if sign == 'b':
a = num[0:-1]
lists.clear()
if str(a)=='':
result.set(0)
else:
result.set(a)
result2.set('')
def pressEqual():
global lists
global isPressSign
curnum = result.get()
lists.append(curnum)
computrStr = ''.join(lists)
if not '/0' in computrStr:
if not (computrStr == '1' or computrStr == '2' or computrStr == '3' or computrStr == '4' or computrStr == '5' or computrStr == '6' or computrStr == '7' or computrStr == '8' or computrStr == '9' or computrStr == '0'):
endNum = eval(computrStr)
endNum = float(str(endNum)[0:13:1])
lists = list(str(endNum))
if lists[-1] == '0' and lists[-2] == '.':
lists.remove('.')
lists.remove('0')
endNum = ''.join(lists)
else:
endNum = computrStr
else:
endNum = '错误'
computrStr = computrStr.replace('*','×')
computrStr = computrStr.replace('/','÷')
result.set(endNum)
result2.set(computrStr)
lists.clear()
root.mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn