通过本文主要向大家介绍了python3.5中文手册,python3.5安装步骤,python3.5官网下载,python3.5安装教程,python3.5等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
本文实例为大家分享了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(1.0,END)))
text.delete(1.0,END)
def M_plus():
global memorylist
global m_plus
m_plus = True
memorylist.append(eval(text.get(1.0,END)))
text.delete(1.0,END)
return True
def M_minus():
global memorylist
global m_minus
m_minus =True
memorylist.append(eval(text.get(1.0,END)))
text.delete(1.0,END)
return True
def Mr():
global memorylist
global m_plus
global m_minus
text.delete(1.0,END)
if m_plus == True:
sum1 =0
for i in range(len(memorylist)):
sum1 = sum1 + memorylist[i]
memorylist =[]
memorylist.append(sum1)
text.insert(1.0,sum1)
elif m_minus == True:
difference = 0
for i in range(len(memorylist)):
difference = memorylist[i]-difference
difference = - difference
memorylist.append(difference)
text.insert(1.0,difference)
def angle_radio():
text.delete(1.0,END)
global angle_is
angle_is =True
def radium_radio():
text.delete(1.0,END)
global radium_is
radium_is =True
def angle_choice():
global x
if angle_is == True:
x = pi*eval(text.get(1.0,END))/180
if radium_is == True:
x = eval(text.get(1.0,END))
def circle_ratio():
text.insert(END,pi)
def sin_x():
global x
angle_choice()
text.delete(1.0,END)
text.insert(1.0,sin(x))
def cos_x():
global x
angle_choice()
text.delete(1.0,END)
text.insert(1.0,cos(x))
def tan_x():
angle_choice()
if x == 90 or x == pi/2:
text_alert.insert(1.0,"正切角度不能为90度或π/2弧度")
return
else:
text.delete(1.0,END)
text.insert(1.0,tan(x))
def square_it():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,pow(temp,2))
def x_ypower():
global list_power,x,xypower
xypower =True
x = eval(text.get(1.0,END))
list_power.append(x)
text.delete(1.0,END)
def tri_power():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,pow(temp,3))
def Bracket_left():
text.insert(END,"(")
def Bracket_right():
text.insert(END,")")
def nature_log():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,log1p(temp))
def deci_log():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,log10(temp))
def bina_log():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,log2(temp))
def y_based_on_x_log():
global list_log,x,xylog
xylog =True
x = eval(text.get(1.0,END))
list_log.append(x)
text.delete(1.0,END)
def natur_const():
text.insert(END,e)
def anti_sin():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,asin(temp)*180/pi)
def anti_cos():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,acos(temp)*180/pi)
def anti_tan():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,atan(temp)*180/pi)
def sqrt_num():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,sqrt(temp))
def tri_root():
temp = eval(text.get(1.0,END))
text.delete(1.0,END)
text.insert(1.0,pow(temp,1/3))
def standard():
MC = Button(root,text ="MC",width =10,command = Mc)
MC.bind("<Enter>",come)
MC.bind("<Leave>",go)
MC.grid(row=2,column =0,sticky =W,padx =1)
MR = Button(root,text ="MR",width =10,command = Mr)
MR.grid(row=2,column =1,stick = W,padx =1)
MR.bind("<Enter>",come)
MR.bind("<Leave>",go)
MS = Button(root,text ="MS",width =10,command =Ms)
MS.grid(row=2,column =2,sticky =W,padx =1)
MS.bind("<Enter>",come)
MS.bind("<Leave>",go)
M_ADD = Button(root,text ="M+",width =10,command =M_plus)
M_ADD.grid(row=2,column =3,sticky =W,padx =1)
M_ADD.bind("<Enter>",come)
M_ADD.bind("<Leave>",go)
M_ADD.bind("<>")
M_Minus = Button(root,text ="M-",width =10,command =M_minus)
M_Minus.grid(row=2,column =4,sticky =W,padx =1)
M_Minus.bind("<Enter>",come)
M_Minus.bind("<Leave>",go)
DEL = Button(root,text ="→",width =10,command =delete_onechar)
DEL.grid(row=3,column =0,sticky =W,padx =1)
DEL.bind("<Enter>",come)
DEL.bind("<Leave>",go)
CEbtn = Button(root,text ="CE",width =10,command =CE)
CEbtn.grid(row=3,column =1,sticky =W,padx =1)
CEbtn.bind("<Enter>",come)
CEbtn.bind("<Leave>",go)
Cbtn = Button(root,text ="C",width =10

