python3.5仿微软计算器程序

本文实例为大家分享了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值