python计算器实现 Yeah

Debug了一整天 总算是出了个小东西,虽然现在来说还有点小问题 但是毕竟成功了。后面的再慢慢完善吧。其实小问题就是,现在这个程序运行一次之后就挂了。我要想办法让它一直活着

import math
from tkinter import *
class GUI:
    def __init__(self):
        #the self function 
        window=Tk()
        window.title("Calculator made by HustWolf")
        menubar=Menu(window)
        window.config(menu=menubar)
        operationMenu=Menu(menubar,tearoff=0)
        menubar.add_cascade(label="Operation",menu=operationMenu)
        operationMenu.add_command(label="operation1",command=self.operation1)
        operationMenu.add_command(label="operation2",command=self.operation2)
        operationMenu.add_command(label="operation3",command=self.operation3)

        exitmenu=Menu(menubar,tearoff=0)
        menubar.add_cascade(label="Exit",menu=exitmenu)
        exitmenu.add_command(label="exit",command=window.quit)

        frame0=Frame(window)
        frame0.grid(row=1,column=1,sticky=W)
        # image1=PhotoImage(file="image/1.jpg")
        # image2=PhotoImage(file="image/2.jpg")
        # image3=PhotoImage(file="image/3.jpg")


        # Button(frame0,image=image1,command=self.operation1).grid(row=1,column=1,sticky=W)
        # Button(frame0,image=image2,command=self.operation2).grid(row=1,column=2)
        # Button(frame0,image=image3,command=self.operation3).grid(row=1,column=3)

        Button(frame0,text="operation1",bg="red",command=self.operation1).grid(row=1,column=1,sticky=W)
        Button(frame0,text="operation2",bg="green",command=self.operation2).grid(row=1,column=2)
        Button(frame0,text="operation3",bg="blue",command=self.operation3).grid(row=1,column=3)

        frame1=Frame(window)
        frame1.grid(row=2,column=1,pady=50)
        Label(frame1,text="number1:").pack(side=LEFT)
        self.v1=StringVar()
        Entry(frame1,width=5,textvariable=self.v1,justify=RIGHT).pack(side=LEFT)
        Label(frame1,text="operation").pack(side=LEFT)
        self.v2=StringVar()
        Entry(frame1,width=5,textvariable=self.v2,justify=RIGHT).pack(side=LEFT)

        Label(frame1,text="number2:").pack(side=LEFT)
        self.v3=StringVar()
        Entry(frame1,width=5,textvariable=self.v3,justify=RIGHT).pack(side=LEFT)
        
        # Label(frame1,text="Result:").pack(side=LEFT)
        self.v4=StringVar()
        Label(frame1,text="Result: ").pack(side=LEFT)
        result=Label(frame1,width=5,textvariable=self.v4,justify=RIGHT).pack(side=LEFT)
        

         # frame2=Frame(window)
         # frame2.grid(row=3,column=1,pady=50)
         # Button(frame2,text="calculate",command=self.operation1)

        window.mainloop()


# the main part of the calculator
    # def calculator(self,a,b,operate,x):
    #   judge=x
    #   if judge==1:
    #       calculate(a,operate,b)
    #   elif judge==2:
    #       calculate2(a,operate,b)
    #   elif judge==3:
    #       calculate3(a,operate,b)

    # def calculate(self,a,operate,b):
    #   a=float(a)
    #   b=float(b)
    #   operate=str(operate)
    #   res=0.00
    #   if operate=='+':
    #       res=a+b
    #
    #   elif operate=='-':
    #       res=a-b
    #
    #   elif operate=='*':
    #       res=a*b
    #
    #   elif operate=='/':
    #       res=a/b
    #
    #   elif operate=='%':
    #       res=a%b
    #
    # def calculate2(self,a,operate,b):
    #   a=str(a)
    #   b=float(b)
    #   operate=str(operate)
    #   if operate=='sin':
    #       return math.sin(b)
    #   elif operate=='cos':
    #       return math.cos(b)
    #   elif operate=='tan':
    #       return math.tan(b)
    #   elif operate=='arcsin':
    #       return math.asin(b)
    #   elif operate=='arccos':
    #       return math.acos(b)
    #   elif operate=='arctan':
    #       return math.atan(b)
    #   elif operate=='sinh':
    #       return math.sinh(b)
    #   elif operate=='asinh':
    #       return math.asinh(b)
    #   elif operate=='cosh':
    #       return math.cosh(b)
    #   elif operate=='acosh':
    #       return math.acosh(b)
    #   elif operate=='tanh':
    #       return math.tanh(b)
    #   elif operate=='atanh':
    #       return math.atanh(b)
    #   elif operate=='ln':
    #       return math.log(b)
    #   elif operate=='log':
    #       return math.log10(b)
    #   elif operate=='sqrt':
    #       return math.sqrt(b)

    # def calculate3(self,a,operate,b):
    #   a=float(a)
    #   b=float(b)
    #   operate=str(operate)
    #   if operate=='pow':
    #       res=math.pow(a,b)
    #   elif operate=='log':
    #       res=math.log(b,a)



#operations defintions

    def operation1(self):
        judge=1
        a=float(self.v1.get())
        b=float(self.v3.get())
        operate=self.v2.get()
        res=0.00
        if operate=='+':
            res=a+b

        elif operate=='-':
            res=a-b

        elif operate=='*':
            res=a*b

        elif operate=='/':
            res=a/b

        elif operate=='%':
            res=a%b

        self.v4.set(str(res))

    def operation2(self):
        judge=2
        a=float(self.v1.get())
        a=1
        b=float(self.v3.get())
        operate=self.v2.get()
        res=0.00
        if operate=='sin':
            res=math.sin(a*b)

        elif operate=='cos':
            res=math.cos(a*b)

        elif operate=='tan':
            res=math.tan(a*b)

        elif operate=='arcsin':
            res=math.asin(a*b)

        elif operate=='arccos':
            res=math.acos(a*b)

        elif operate=='arctan':
            res=math.atan(a*b)

        elif operate=='sinh':
            res=math.sinh(a*b)

        elif operate=='asinh':
            res=math.asinh(a*b)

        elif operate=='cosh':
            res=math.cosh(a*b)

        elif operate=='acosh':
            res=math.acosh(a*b)

        elif operate=='tanh':
            res=math.tanh(a*b)

        elif operate=='atanh':
            res=math.atanh(a*b)

        elif operate=='ln':
            res=math.log(a*b)

        elif operate=='log':
            res=math.log10(a*b)

        elif operate=='sqrt':
            res=math.sqrt(a*b)

        self.v4.set(str(res))

    def operation3(self):
        judge=3
        a=float(self.v1.get())
        b=float(self.v3.get())
        operate=self.v2.get()
        res=0.00
        if operate=='pow':
            res=math.pow(a,b)
        elif operate=='log':
            res=math.log(b,a)
        self.v4.set(str(res))



#Run the program

GUI()


不容易啊 不容易,我在做机械原理的实验的时候都没有认真的玩那个六自由度机器人反而是在琢磨着Debug 立地为猿真是一个艰难的决定啊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容