python实现简易版计算器

  

学了一周的Python,这篇文章算是为这段时间自学做的小总结。

  

<强>一、Python简介

  

,,,,,,Python是一门十分优美的脚本语言,如果学过java、c++那入门Python是非常简单的.Python具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是c/c++)轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

  

<强>二,Python版计算器的实现

  

工具准备:

  

,,,,, 1。Python2.7
  ,,,,,,2. wxPython
  ,,,,,,3.wxGlade界面编辑工具
  ,,,,,,4. pyCharm

  

,,,,,,,具体配置什么的我就不说了,网上有很多.Python GUI的开发库有很多,这里我们使用wxPython。用wxGlade编辑界面,wxGlade是一款很好用的GUI编辑工具,它最大的优点是能自动生成编辑好的图形界面的代码。

  

这里主要介绍几点:

  

(文本输入控件),这个作为计算器的显示屏,点击数字时用方法将数字添加至文本末尾,要取出数字时用方法,点击运算符时要将文本框中的数字清空(先存储)用方法然后还有将操作符保存,点击等号后要将第二个操作数存储,然后用方法将字符串转换为数字,计算后用方法将结果送入文本框,具体代码如下:

        进口的天气      #开始wxGlade:附加码   #结束wxGlade         类MyFrame (wx.Frame):   def __init__(自我,* args, * * kwds):   #开始wxGlade: MyFrame.__init__   kwds=wx.DEFAULT_FRAME_STYLE“风格”   wx.Frame。__init__(自我,* args, * * kwds)   自我。text_ctrl_1=天气。TextCtrl(自我,1”“风格=wx.TE_READONLY)   自我。button_37=天气。按钮(自我,1,“1”)   自我。button_38=天气。按钮(自我,1,“2”)   自我。button_39=天气。按钮(自我,1,“3”)   自我。button_40=天气。按钮(自我,1,“+”)   自我。button_41=天气。按钮(自我,1,“4”)   自我。button_42=天气。按钮(自我,1,“5”)   自我。button_43=天气。按钮(自我,1,“6”)   自我。button_44=天气。按钮(自我,1“-”)   自我。button_46=天气。按钮(自我,1,“7”)   自我。button_45=天气。按钮(自我,1,“8”)   自我。button_47=天气。按钮(自我,1,“9”)   自我。button_48=天气。按钮(自我,1,“x”)   自我。button_49=天气。按钮(自我,1,“C”)   自我。button_50=天气。按钮(自我,1,“0”)   自我。button_51=天气。按钮(自我,1,“=?   自我。button_52=天气。按钮(自我,1,“/?      self.__set_properties ()   self.__do_layout ()      self.Bind(天气。EVT_BUTTON,自我。bu1 self.button_37)   self.Bind(天气。EVT_BUTTON,自我。bu2 self.button_38)   self.Bind(天气。EVT_BUTTON,自我。bu3 self.button_39)   self.Bind(天气。EVT_BUTTON,自我。bu_plus self.button_40)   self.Bind(天气。EVT_BUTTON,自我。bu4 self.button_41)   self.Bind(天气。EVT_BUTTON,自我。bu5 self.button_42)   self.Bind(天气。EVT_BUTTON,自我。bu6 self.button_43)   self.Bind(天气。EVT_BUTTON,自我。bu_min self.button_44)   self.Bind(天气。EVT_BUTTON,自我。波士顿大学,self.button_46)   self.Bind(天气。EVT_BUTTON,自我。bu8 self.button_45)   self.Bind(天气。EVT_BUTTON,自我。bu9 self.button_47)   self.Bind(天气。EVT_BUTTON,自我。bu_mul self.button_48)   self.Bind(天气。EVT_BUTTON,自我。bu_clear self.button_49)   self.Bind(天气。EVT_BUTTON,自我。bu0 self.button_50)   self.Bind(天气。EVT_BUTTON,自我。bu_result self.button_51)   self.Bind(天气。EVT_BUTTON,自我。bu_chu self.button_52)   #结束wxGlade   self.Show(真正的)      def __set_properties(自我):   #开始wxGlade: MyFrame.__set_properties   自我。SetTitle (“CYG Python计算器”)   self.text_ctrl_1。SetMinSize((400年,50))   self.button_37。SetMinSize((100年,50))   self.button_38。SetMinSize((100年,50))   self.button_39。SetMinSize((100年,50))   self.button_40。SetMinSize((100年,50))   self.button_41。SetMinSize((100年,50))   self.button_42。SetMinSize((100年,50))   self.button_43。SetMinSize((100年,50))   self.button_44。SetMinSize((100年,50))   self.button_46。SetMinSize((100年,50))   self.button_45。SetMinSize((100年,50))   self.button_47。SetMinSize((100年,50))   self.button_48。SetMinSize((100年,50))   self.button_49。SetMinSize((100年,50))   self.button_50。SetMinSize((100年,50))   self.button_51。SetMinSize((100年,50))   self.button_52。SetMinSize((100年,50))   #结束wxGlade      def __do_layout(自我):   #开始wxGlade: MyFrame.__do_layout   sizer_2=wx.BoxSizer (wx.VERTICAL)   sizer_3=wx.BoxSizer (wx.VERTICAL)   grid_sizer_1=天气。GridSizer (4 4 0,0)   sizer_3.Add(自我。text_ctrl_1, 0, 0, 0)   grid_sizer_1.Add(自我。button_37, 0, 0, 0)   grid_sizer_1.Add(自我。button_38, 0, 0, 0)   grid_sizer_1.Add(自我。button_39, 0, 0, 0)   grid_sizer_1.Add(自我。button_40, 0, 0, 0)   grid_sizer_1.Add(自我。button_41, 0, 0, 0)   grid_sizer_1.Add(自我。button_42, 0, 0, 0)   grid_sizer_1.Add(自我。button_43, 0, 0, 0)   grid_sizer_1.Add(自我。button_44, 0, 0, 0)   grid_sizer_1.Add(自我。button_46, 0, 0, 0)   grid_sizer_1.Add(自我。button_45, 0, 0, 0)   grid_sizer_1.Add(自我。button_47, 0, 0, 0)   grid_sizer_1.Add(自我。button_48, 0, 0, 0)   grid_sizer_1.Add(自我。button_49, 0, 0, 0)   grid_sizer_1.Add(自我。button_50, 0, 0, 0)   grid_sizer_1.Add(自我。button_51, 0, 0, 0)   grid_sizer_1.Add(自我。button_52, 0, 0, 0)   sizer_3。Add (grid_sizer_1 1 wx。扩大,0)   sizer_2。Add (sizer_3 1 wx。扩大,0)   self.SetSizer (sizer_2)   sizer_2.Fit(自我)   self.Layout ()   #结束wxGlade      def bu1(自我、事件):# wxGlade: MyFrame灵活;event_handler>   self.text_ctrl_1.AppendText (“1”)   event.Skip ()      def bu2(自我、事件):# wxGlade: MyFrame灵活;event_handler>   self.text_ctrl_1.AppendText (“2”)   event.Skip ()      def bu3(自我、事件):# wxGlade: MyFrame灵活;event_handler>   self.text_ctrl_1.AppendText (“3”)   event.Skip ()      def bu_plus(自我、事件):# wxGlade: MyFrame灵活;event_handler>   self.num1=self.text_ctrl_1.GetValue ()   self.op=" + "   self.text_ctrl_1.Clear ()   event.Skip ()      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python实现简易版计算器