本文实例为大家分享了python3.5仿微软计算器的具体代码,供大家参考,具体内容如下
from tkinter import *
from math import *
root = Tk()
root.title("计算器")
root.geometry("1200x260+0+0")
def come(event):
event.widget["background"]= "orange"#event的widget方法,恩,恩,值得看看
def go(event):
event.widget["background"] = "#%02x%02x%02x" % (240,240,240)#实现RGB和十六进制的换算
def num1():
text.insert(END,1)
def num2():
text.insert(END,2)
def num3():
text.insert(END,3)
def num4():
text.insert(END,4)
def num5():
text.insert(END,5)
def num6():
text.insert(END,6)
def num7():
text.insert(END,7)
def num8():
text.insert(END,8)
def num9():
text.insert(END,9)
def num0():
if text.get(END) =="/":
messagebox.showinfo(title ="除数不能为零")
else:
text.insert(END,0)
def dot_it():
text.insert(END,".")
def Addnum():
if text.get(1.0,END):
text.insert(END,"+")
def minus_num():
if text.get(1.0,END):
text.insert(END,"-")
def times_num():
if text.get(1.0,END):
text.insert(END,"*")
def div_num():
if text.get(1.0,END):
text.insert(END,"/")
def equal_it():#可以使用text的search方法排除除法和开根号的例外
global list_power,x,list_log,xylog
se = text.get(1.0,END)
if se:
if "/" in text.get(1.0,END):
div_pos = text.search("/",1.0,END)
pos = div_pos.split(".")
text_row = pos[0]
text_column = pos[1]
newpos = "%d.%d" % (int(text_row),int(text_column)+1)
cool = eval(text.get(newpos,END))
if cool == 0:
text_alert.insert(1.0,"被除数不能为零")
return
else:
se = eval(se)
text.delete(1.0,END)
text.insert(1.0,se)
elif xypower==True:#通过设全局变量为哨兵,看函数是否被调用
list_power.append(eval(se))
text.delete(1.0,END)
text.insert(1.0,pow(list_power[0],list_power[1]))
list_power = []
elif xylog ==True:
list_log.append(eval(se))
text.delete(1.0,END)
text.insert(1.0,log(list_log[1],list_log[0]))
list_log = []
else:
se = eval(se)
text.delete(1.0,END)
text.insert(1.0,se)
else:
text.delete(1.0,END)
def negative():
text.insert(END,"-")
def Square_root():
if eval(text.get(1.0,END))>=0:
rootit =sqrt(eval(text.get(1.0,END)))
text.delete(1.0,END)
text.insert(1.0,rootit)
def Per():
if text.get(1.0,END):
num = eval(text.get(1.0,END))
text.insert(END,"%")
newnum = num*0.01
text.delete(1.0,END)
text.insert(1.0,newnum)
def Reci_num():
#text.get(1.0,"%s-2c" % END).strip("\n")
#if text.get(1.0,"%s-1c" % END).isdigit():
# if type(aa)==type(bb) 可以用来判断数据类型
# if type(aa)==type(1)
#if type(aa)==type("我")
#if type(aa)==type(3.14)
if eval(text.get(1.0,END))!=0:
num = eval(text.get(1.0,END).strip("\n"))
num = 1/num
text.delete(1.0,END)
text.insert(1.0,num)
else:
text_alert.insert(1.0,"零不能求倒数")
def C():
global memorylist,list_power,list_log# global的用法
text.delete(1.0,END)
text_alert.delete(1.0,END)
memorylist = []
list_power = []
list_log =[]
def CE():
text.delete(1.0,END)
text_alert.delete(1.0,END)
def delete_onechar():
text.delete("%s-1c" % INSERT,INSERT)#字符index的移动
def Mc():
global memorylist
memorylist = []
def Ms():
global memorylist
memorylist.append(eval(text.get