Python实现的科学计算器功能示例


Posted in Python onAugust 04, 2017

本文实例讲述了Python实现的科学计算器功能。分享给大家供大家参考,具体如下:

import wx
import re
import math
# begin wxGlade: extracode
# end wxGlade
ans=0
ts=""
class MyFrame(wx.Frame):
  def __init__(self, *args, **kwds):
    # begin wxGlade: MyFrame.__init__
    kwds["style"] = wx.DEFAULT_FRAME_STYLE
    wx.Frame.__init__(self, *args, **kwds)
    self.text_ctrl_1 = wx.TextCtrl(self, -1, "" ,style=wx.TE_READONLY)
    self.text_ctrl_2 = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY)
    self.button_37 = wx.Button(self, -1, "7")
    self.button_38 = wx.Button(self, -1, "8")
    self.button_39 = wx.Button(self, -1, "9")
    self.button_40 = wx.Button(self, -1, "+")
    self.button_41 = wx.Button(self, -1, "-")
    self.button_42 = wx.Button(self, -1, "4")
    self.button_43 = wx.Button(self, -1, "5")
    self.button_44 = wx.Button(self, -1, "6")
    self.button_45 = wx.Button(self, -1, "x")
    self.button_46 = wx.Button(self, -1, "/")
    self.button_47 = wx.Button(self, -1, "1")
    self.button_48 = wx.Button(self, -1, "2")
    self.button_49 = wx.Button(self, -1, "3")
    self.button_50 = wx.Button(self, -1, "(")
    self.button_51 = wx.Button(self, -1, ")")
    self.button_52 = wx.Button(self, -1, "0")
    self.button_53 = wx.Button(self, -1, ".")
    self.button_54 = wx.Button(self, -1, "ans")
    self.button_55 = wx.Button(self, -1, "clear")
    self.button_56 = wx.Button(self, -1, "=")
    self.button_57 = wx.Button(self, -1, "pi")
    self.button_58 = wx.Button(self, -1, "e")
    self.button_59 = wx.Button(self, -1, "1/x")
    self.button_60 = wx.Button(self, -1, "x^2")
    self.button_61 = wx.Button(self, -1, "x^y")
    self.button_62 = wx.Button(self, -1, "sqrt")
    self.button_63 = wx.Button(self, -1, "sin")
    self.button_64 = wx.Button(self, -1, "cos")
    self.button_65 = wx.Button(self, -1, "tan")
    self.button_66 = wx.Button(self, -1, "log")
    self.button_67 = wx.Button(self, -1, "ln")
    self.button_68 = wx.Button(self, -1, "n!")
    self.button_69 = wx.Button(self, -1, "mod")
    self.button_70 = wx.Button(self, -1, "int")
    self.button_71 = wx.Button(self, -1, "yu")
    self.button_72 = wx.Button(self, -1, "|")
    self.button_73 = wx.Button(self, -1, "~")
    self.button_74 = wx.Button(self, -1, "xor")
    self.__set_properties()
    self.__do_layout()
    self.Bind(wx.EVT_BUTTON, self.bu37, self.button_37)
    self.Bind(wx.EVT_BUTTON, self.bu38, self.button_38)
    self.Bind(wx.EVT_BUTTON, self.bu39, self.button_39)
    self.Bind(wx.EVT_BUTTON, self.bu40, self.button_40)
    self.Bind(wx.EVT_BUTTON, self.bu41, self.button_41)
    self.Bind(wx.EVT_BUTTON, self.bu42, self.button_42)
    self.Bind(wx.EVT_BUTTON, self.bu43, self.button_43)
    self.Bind(wx.EVT_BUTTON, self.bu44, self.button_44)
    self.Bind(wx.EVT_BUTTON, self.bu45, self.button_45)
    self.Bind(wx.EVT_BUTTON, self.bu46, self.button_46)
    self.Bind(wx.EVT_BUTTON, self.bu47, self.button_47)
    self.Bind(wx.EVT_BUTTON, self.bu48, self.button_48)
    self.Bind(wx.EVT_BUTTON, self.bu49, self.button_49)
    self.Bind(wx.EVT_BUTTON, self.bu50, self.button_50)
    self.Bind(wx.EVT_BUTTON, self.bu51, self.button_51)
    self.Bind(wx.EVT_BUTTON, self.bu52, self.button_52)
    self.Bind(wx.EVT_BUTTON, self.bu53, self.button_53)
    self.Bind(wx.EVT_BUTTON, self.bu54, self.button_54)
    self.Bind(wx.EVT_BUTTON, self.bu55, self.button_55)
    self.Bind(wx.EVT_BUTTON, self.bu56, self.button_56)
    self.Bind(wx.EVT_BUTTON, self.bu57, self.button_57)
    self.Bind(wx.EVT_BUTTON, self.bu58, self.button_58)
    self.Bind(wx.EVT_BUTTON, self.bu59, self.button_59)
    self.Bind(wx.EVT_BUTTON, self.bu60, self.button_60)
    self.Bind(wx.EVT_BUTTON, self.bu61, self.button_61)
    self.Bind(wx.EVT_BUTTON, self.bu62, self.button_62)
    self.Bind(wx.EVT_BUTTON, self.bu63, self.button_63)
    self.Bind(wx.EVT_BUTTON, self.bu64, self.button_64)
    self.Bind(wx.EVT_BUTTON, self.bu65, self.button_65)
    self.Bind(wx.EVT_BUTTON, self.bu66, self.button_66)
    self.Bind(wx.EVT_BUTTON, self.bu67, self.button_67)
    self.Bind(wx.EVT_BUTTON, self.bu68, self.button_68)
    self.Bind(wx.EVT_BUTTON, self.bu69, self.button_69)
    self.Bind(wx.EVT_BUTTON, self.bu70, self.button_70)
    self.Bind(wx.EVT_BUTTON, self.bu71, self.button_71)
    self.Bind(wx.EVT_BUTTON, self.bu72, self.button_72)
    self.Bind(wx.EVT_BUTTON, self.bu73, self.button_73)
    self.Bind(wx.EVT_BUTTON, self.bu74, self.button_74)
    # end wxGlade
    self.Show(True)
  def __set_properties(self):
    # begin wxGlade: MyFrame.__set_properties
    self.SetTitle("Python Calculater by CYG")
    self.text_ctrl_1.SetMinSize((500, 30))
    self.text_ctrl_2.SetMinSize((500, 50))
    self.button_37.SetMinSize((100, 60))
    self.button_38.SetMinSize((100, 60))
    self.button_39.SetMinSize((100, 60))
    self.button_40.SetMinSize((100, 60))
    self.button_41.SetMinSize((100, 60))
    self.button_42.SetMinSize((100, 60))
    self.button_43.SetMinSize((100, 60))
    self.button_44.SetMinSize((100, 60))
    self.button_46.SetMinSize((100, 60))
    self.button_45.SetMinSize((100, 60))
    self.button_47.SetMinSize((100, 60))
    self.button_48.SetMinSize((100, 60))
    self.button_49.SetMinSize((100, 60))
    self.button_50.SetMinSize((100, 60))
    self.button_51.SetMinSize((100, 60))
    self.button_52.SetMinSize((100, 60))
    self.button_53.SetMinSize((100, 60))
    self.button_54.SetMinSize((100, 60))
    self.button_55.SetMinSize((100, 60))
    self.button_56.SetMinSize((100, 60))
    self.button_57.SetMinSize((83, 50))
    self.button_58.SetMinSize((83, 50))
    self.button_59.SetMinSize((83, 50))
    self.button_60.SetMinSize((83, 50))
    self.button_61.SetMinSize((83, 50))
    self.button_62.SetMinSize((83, 50))
    self.button_63.SetMinSize((83, 50))
    self.button_64.SetMinSize((83, 50))
    self.button_65.SetMinSize((83, 50))
    self.button_66.SetMinSize((83, 50))
    self.button_67.SetMinSize((83, 50))
    self.button_68.SetMinSize((83, 50))
    self.button_69.SetMinSize((83, 50))
    self.button_70.SetMinSize((83, 50))
    self.button_71.SetMinSize((83, 50))
    self.button_72.SetMinSize((83, 50))
    self.button_73.SetMinSize((83, 50))
    self.button_74.SetMinSize((83, 50))
    # end wxGlade
  def __do_layout(self):
    # begin wxGlade: MyFrame.__do_layout
    sizer_2 = wx.BoxSizer(wx.VERTICAL)
    sizer_3 = wx.BoxSizer(wx.VERTICAL)
    grid_sizer_1 = wx.GridSizer(4, 5, 0, 0)
    grid_sizer_2 = wx.GridSizer(3, 6, 0, 0)
    sizer_3.Add(self.text_ctrl_2, 0, 0, 0)
    sizer_3.Add(self.text_ctrl_1, 0, 0, 0)
    grid_sizer_1.Add(self.button_37, 0, 0, 0)
    grid_sizer_1.Add(self.button_38, 0, 0, 0)
    grid_sizer_1.Add(self.button_39, 0, 0, 0)
    grid_sizer_1.Add(self.button_40, 0, 0, 0)
    grid_sizer_1.Add(self.button_41, 0, 0, 0)
    grid_sizer_1.Add(self.button_42, 0, 0, 0)
    grid_sizer_1.Add(self.button_43, 0, 0, 0)
    grid_sizer_1.Add(self.button_44, 0, 0, 0)
    grid_sizer_1.Add(self.button_45, 0, 0, 0)
    grid_sizer_1.Add(self.button_46, 0, 0, 0)
    grid_sizer_1.Add(self.button_47, 0, 0, 0)
    grid_sizer_1.Add(self.button_48, 0, 0, 0)
    grid_sizer_1.Add(self.button_49, 0, 0, 0)
    grid_sizer_1.Add(self.button_50, 0, 0, 0)
    grid_sizer_1.Add(self.button_51, 0, 0, 0)
    grid_sizer_1.Add(self.button_52, 0, 0, 0)
    grid_sizer_1.Add(self.button_53, 0, 0, 0)
    grid_sizer_1.Add(self.button_54, 0, 0, 0)
    grid_sizer_1.Add(self.button_55, 0, 0, 0)
    grid_sizer_1.Add(self.button_56, 0, 0, 0)
    grid_sizer_2.Add(self.button_57, 0, 0, 0)
    grid_sizer_2.Add(self.button_58, 0, 0, 0)
    grid_sizer_2.Add(self.button_59, 0, 0, 0)
    grid_sizer_2.Add(self.button_60, 0, 0, 0)
    grid_sizer_2.Add(self.button_61, 0, 0, 0)
    grid_sizer_2.Add(self.button_62, 0, 0, 0)
    grid_sizer_2.Add(self.button_63, 0, 0, 0)
    grid_sizer_2.Add(self.button_64, 0, 0, 0)
    grid_sizer_2.Add(self.button_65, 0, 0, 0)
    grid_sizer_2.Add(self.button_66, 0, 0, 0)
    grid_sizer_2.Add(self.button_67, 0, 0, 0)
    grid_sizer_2.Add(self.button_68, 0, 0, 0)
    grid_sizer_2.Add(self.button_69, 0, 0, 0)
    grid_sizer_2.Add(self.button_70, 0, 0, 0)
    grid_sizer_2.Add(self.button_71, 0, 0, 0)
    grid_sizer_2.Add(self.button_72, 0, 0, 0)
    grid_sizer_2.Add(self.button_73, 0, 0, 0)
    grid_sizer_2.Add(self.button_74, 0, 0, 0)
    sizer_3.Add(grid_sizer_1, 1, wx.EXPAND, 0)
    sizer_3.Add(grid_sizer_2, 1, wx.EXPAND, 0)
    sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
    self.SetSizer(sizer_2)
    sizer_2.Fit(self)
    self.Layout()
    # end wxGlade
  def bu37(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts+="7"
    self.text_ctrl_1.AppendText("7")
    event.Skip()
  def bu38(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts+="8"
    self.text_ctrl_1.AppendText("8")
    event.Skip()
  def bu39(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "9"
    self.text_ctrl_1.AppendText("9")
    event.Skip()
  def bu40(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "+"
    self.text_ctrl_1.AppendText("+")
    event.Skip()
  def bu41(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "-"
    self.text_ctrl_1.AppendText("-")
    event.Skip()
  def bu42(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "4"
    self.text_ctrl_1.AppendText("4")
    event.Skip()
  def bu43(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "5"
    self.text_ctrl_1.AppendText("5")
    event.Skip()
  def bu44(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "6"
    self.text_ctrl_1.AppendText("6")
    event.Skip()
  def bu45(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "*"
    self.text_ctrl_1.AppendText("*")
    event.Skip()
  def bu46(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "/"
    self.text_ctrl_1.AppendText("/")
    event.Skip()
  def bu47(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "1"
    self.text_ctrl_1.AppendText("1")
    event.Skip()
  def bu48(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "2"
    self.text_ctrl_1.AppendText("2")
    event.Skip()
  def bu49(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "3"
    self.text_ctrl_1.AppendText("3")
    event.Skip()
  def bu50(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "("
    self.text_ctrl_1.AppendText("(")
    event.Skip()
  def bu51(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += ")"
    self.text_ctrl_1.AppendText(")")
    event.Skip()
  def bu52(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "0"
    self.text_ctrl_1.AppendText("0")
    event.Skip()
  def bu53(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "."
    self.text_ctrl_1.AppendText(".")
    event.Skip()
  def bu54(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "ans"
    self.text_ctrl_1.AppendText("ans")
    event.Skip()
  def bu55(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    self.text_ctrl_1.Clear()
    self.text_ctrl_2.Clear()
    ans=0
    ts=""
    event.Skip()
  def minus_operation(self,expresstion):
    minus_operators = re.split("-", expresstion)
    calc_list = re.findall("[0-9]", expresstion)
    if minus_operators[0] == "":
      calc_list[0] = '-%s' % calc_list[0]
    res = reduce(lambda x, y: float(x) - float(y), calc_list)
    return res
  def del_duplicates(self,ts):
    ts = ts.replace("++", "+")
    ts = ts.replace("--", "-")
    ts = ts.replace("+-", "-")
    ts = ts.replace("--", "+")
    ts = ts.replace('- -', "+")
    return ts
  def mutiply_dividend(self,expresstion):
    calc_list = re.split("[*/]", expresstion)
    operators = re.findall("[*/]", expresstion)
    res = None
    for index, i in enumerate(calc_list):
      if res:
        if operators[index - 1] == '*':
          res *= float(i)
        elif operators[index - 1] == '/':
          res /= float(i)
      else:
        res = float(i)
    return res
  def special_features(self,plus_and_minus_operators, multiply_and_dividend):
    for index, i in enumerate(multiply_and_dividend):
      i = i.strip()
      if i.endswith("*") or i.endswith("/"):
        multiply_and_dividend[index] = multiply_and_dividend[index] + plus_and_minus_operators[index] + \
                        multiply_and_dividend[index + 1]
        del multiply_and_dividend[index + 1]
        del plus_and_minus_operators[index]
    return plus_and_minus_operators, multiply_and_dividend
  def minus_special(self,operator_list, calc_list):
    for index, i in enumerate(calc_list):
      if i == '':
        calc_list[index + 1] = i + calc_list[index + 1].strip()
  def figure_up(self,ts):
    ts = ts.strip("()")
    ts = self.del_duplicates(ts)
    plus_and_minus_operators = re.findall("[+-]", ts)
    multiply_and_dividend = re.split("[+-]", ts)
    if len(multiply_and_dividend[0].strip()) == 0:
      multiply_and_dividend[1] = plus_and_minus_operators[0] + multiply_and_dividend[1]
      del multiply_and_dividend[0]
      del plus_and_minus_operators[0]
    plus_and_minus_operators, multiply_and_dividend = self.special_features(plus_and_minus_operators,
                                      multiply_and_dividend)
    for index, i in enumerate(multiply_and_dividend):
      if re.search("[*/]", i):
        sub_res = self.mutiply_dividend(i)
        multiply_and_dividend[index] = sub_res
    #print(multiply_and_dividend, plus_and_minus_operators)
    final_res = None
    for index, item in enumerate(multiply_and_dividend):
      if final_res:
        if plus_and_minus_operators[index - 1] == '+':
          final_res += float(item)
        elif plus_and_minus_operators[index - 1] == '-':
          final_res -= float(item)
      else:
        final_res = float(item)
    return final_res
  def bu56(self, event): # wxGlade: MyFrame.<event_handler>
    global ans
    global ts
    if re.search("pi", ts):
      lists = re.findall("pi", ts)
      for i in range(0, len(lists)):
        te = str(math.pi)
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("pi", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("e", ts):
      lists = re.findall("e", ts)
      for i in range(0, len(lists)):
        te = str(math.e)
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("e", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("sin.*\)",ts):
      lists=re.findall("sin(.+?)",ts)
      for i in range(0,len(lists)):
        te=float(lists[i])
        te=str(math.sin(te))
        self.text_ctrl_2.SetValue(te)
        ts=re.sub("sin.*?\)",te,ts,1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("cos.*\)", ts):
      lists = re.findall("cos(.+?)", ts)
      for i in range(0, len(lists)):
        te = float(lists[i])
        te = str(math.cos(te))
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("cos.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("tan.*\)", ts):
      lists = re.findall("tan(.+?)", ts)
      for i in range(0, len(lists)):
        te = float(lists[i])
        te = str(math.tan(te))
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("tan.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("ln.*\)", ts):
      lists = re.findall("ln(.+?)", ts)
      for i in range(0, len(lists)):
        te = float(lists[i])
        te = str(math.log(te))
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("ln.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("log.*\)", ts):
      lists = re.findall("log(.+?)", ts)
      for i in range(0, len(lists)):
        te = float(lists[i])
        te = str(math.log(te)/math.log(10))
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("log.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("sqrt.*\)", ts):
      lists = re.findall("sqrt(.+?)", ts)
      for i in range(0, len(lists)):
        te = float(lists[i])
        te = str(math.sqrt(te))
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("sqrt.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("int.*\)", ts):
      lists = re.findall("int(.+?)", ts)
      for i in range(0, len(lists)):
        te=float(lists[i])
        te=int(te)
        te = str(te)
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("int.*?\)", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("ans", ts):
      lists = re.findall("ans", ts)
      for i in range(0, len(lists)):
        te = str(ans)
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("ans", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
    if re.search("?−?\d∗\.?\d∗?\^?−?\d∗\.?\d∗?", ts):
      lists1 = re.findall("?(−?\d∗\.?\d∗?)?\^", ts)
      lists2 = re.findall("\^?(−?\d∗\.?\d∗)?", ts)
      for i in range(0, len(lists1)):
        te1=float(lists1[i])
        te2=float(lists2[i])
        #print te1
        #print te2
        te=math.pow(te1,te2)
        te = str(te)
        self.text_ctrl_2.SetValue(te)
        ts = re.sub("?[0−9]∗\.?[0−9]∗??\^?[0−9]∗\.?[0−9]∗?", te, ts, 1)
        #self.text_ctrl_1.SetValue(ts)
      #ts = re.sub("?−?\d∗\.?\d∗?\^?−?\d∗\.?\d∗??", te, ts, 1)
    if re.search("?−?\d∗?\!", ts):
        lists = re.findall("?(−?\d+?)?\!", ts)
        for i in range(0, len(lists)):
          te = float(lists[i])
          te = math.factorial(te)
          te = str(te)
          self.text_ctrl_2.SetValue(te)
          ts = re.sub("?−?\d+??\!", te, ts, 1)
          #self.text_ctrl_1.SetValue(ts)
    #print ts
    flag=True
    while flag:
      m = re.search("[()]∗", ts)
      if m:
        sub_res=self.figure_up(m.group())
        ts=ts.replace(m.group(),str(sub_res))
      else:
        ans=self.figure_up(ts)
        flag=False
    self.text_ctrl_2.SetValue(str(ans))
      #ans=
    #self.text_ctrl_2.SetValue(str(ans))
    # self.text_ctrl_1.Clear()
    event.Skip()
  def bu57(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "pi"
    self.text_ctrl_1.AppendText("pi")
    event.Skip()
  def bu58(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "e"
    self.text_ctrl_1.AppendText("e")
    event.Skip()
  def bu59(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "^(-1)"
    self.text_ctrl_1.AppendText("^(-1)")
    event.Skip()
  def bu60(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "^2"
    self.text_ctrl_1.AppendText("^2")
    event.Skip()
  def bu61(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "^"
    self.text_ctrl_1.AppendText("^")
    event.Skip()
  def bu62(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "sqrt("
    self.text_ctrl_1.AppendText("sqrt(")
    event.Skip()
  def bu63(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "sin("
    self.text_ctrl_1.AppendText("sin(")
    event.Skip()
  def bu64(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "cos("
    self.text_ctrl_1.AppendText("cos(")
    event.Skip()
  def bu65(self, event): # wxGlade: MyFrame# .<event_handler>
    global ts
    ts += "tan("
    self.text_ctrl_1.AppendText("tan(")
    event.Skip()
  def bu66(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "log("
    self.text_ctrl_1.AppendText("log(")
    event.Skip()
  def bu67(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "ln("
    self.text_ctrl_1.AppendText("ln(")
    event.Skip()
  def bu68(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "!"
    self.text_ctrl_1.AppendText("!")
    event.Skip()
  def bu69(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "m"
    self.text_ctrl_1.AppendText("m")#qumo
    event.Skip()
  def bu70(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "int("
    self.text_ctrl_1.AppendText("int(")
    event.Skip()
  def bu71(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "u"
    self.text_ctrl_1.AppendText("u")#yu
    event.Skip()
  def bu72(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "|"
    self.text_ctrl_1.AppendText("|")#huo
    event.Skip()
  def bu73(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "n("
    self.text_ctrl_1.AppendText("n(")#fei
    event.Skip()
  def bu74(self, event): # wxGlade: MyFrame.<event_handler>
    global ts
    ts += "x"
    self.text_ctrl_1.AppendText("x")#yihuo
    event.Skip()
    # end of class MyFrame
if __name__ == "__main__":
  app=wx.App(False)
  myframe= MyFrame(None)
  app.MainLoop()

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
python3 pathlib库Path类方法总结
Dec 26 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
python super用法及原理详解
Jan 20 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
Python中用字符串调用函数或方法示例代码
Aug 04 #Python
Python编程实现的图片识别功能示例
Aug 03 #Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 #Python
详解 Python中LEGB和闭包及装饰器
Aug 03 #Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 #Python
python中MethodType方法介绍与使用示例
Aug 03 #Python
初学python的操作难点总结(新手必看篇)
Aug 03 #Python
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php的4种常用运行方式详解
2016/12/22 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
利用jquery操作Radio方法小结
2014/10/20 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
python基础教程之常用运算符
2014/08/29 Python
python实现计算资源图标crc值的方法
2014/10/05 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
《三峡》教学反思
2014/03/01 职场文书
经理助理岗位职责
2014/03/05 职场文书
活动总结新闻稿
2014/08/30 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
初中教师个人总结
2015/02/10 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
对Keras自带Loss Function的深入研究
2021/05/25 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
i7 6700处理器相当于i5几代
2022/04/19 数码科技
Golang实现可重入锁的示例代码
2022/05/25 Golang