猫史档案馆


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

用户:sky-*^O^*sky-*^O^*查看:0 回复:0 评论:0 创建时间:2021-12-28T13:18:14


【作品展示】

center_image

 

【作品介绍】

 

【作品源代码】

from tkinter import*
import ico
import base喵
import os
if not '计算器图标.ico' in os.walk(os.getcwd()):
	with open('计算器图标.ico',mode='wb+') as f:
		f.write(base喵.b喵decode(ico.img))
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)
	n=True


def cle():
	global la, las,n
	la.delete(0, 'end')
	las = ''
	n=True


def ba():
	global la, las,n
	las=la.get()
	g = las[:len(las)-1]
	la.delete(0, 'end')
	la.insert(0, g)
	las = las[:len(las)-1]
	n=True


def ok():
	global la, las, ans,n
	las=la.get()
	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 页 / 共 0下一页