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(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,command =C)
  Cbtn.grid(row=3,column =2,sticky =W,padx =1)
  Cbtn.bind("<Enter>",come)
  Cbtn.bind("<Leave>",go)
  negativ = Button(root,text ="负号 - ",width =10,command = negative)
  negativ.grid(row=3,column =3,sticky =W,padx =1)
  negativ.bind("<Enter>",come)
  negativ.bind("<Leave>",go)
  sqr_root = Button(root,text ="平方根√",width =10,command =Square_root )
  sqr_root.grid(row =3,column =4,sticky =W,padx =1)
  sqr_root.bind("<Enter>",come)
  sqr_root.bind("<Leave>",go)

  btn7 = Button(root,text =7,width =10,command = num7)
  btn7.grid(row=4,column =0,sticky =W,padx =1)
  btn7.bind("<Enter>",come)
  btn7.bind("<Leave>",go)
  btn8 = Button(root,text =8,width =10,command = num8)
  btn8.grid(row=4,column =1,sticky =W,padx =1)
  btn8.bind("<Enter>",come)
  btn8.bind("<Leave>",go)
  btn9 = Button(root,text =9,width =10,command = num9)
  btn9.grid(row=4,column =2,sticky =W,padx =1)
  btn9.bind("<Enter>",come)
  btn9.bind("<Leave>",go)
  div = Button(root,text ="除法 /",width =10,command = div_num)
  div.grid(row=4,column =3,sticky =W,padx =1)
  div.bind("<Enter>",come)
  div.bind("<Leave>",go)
  per = Button(root,text ="百分之 %",width =10,command =Per)
  per.grid(row=4,column =4,sticky =W,padx =1)
  per.bind("<Enter>",come)
  per.bind("<Leave>",go)

  btn4 = Button(root,text =4,width =10,command = num4)
  btn4.grid(row=5,column =0,sticky =W,padx =1)
  btn4.bind("<Enter>",come)
  btn4.bind("<Leave>",go)
  btn5 = Button(root,text =5,width =10,command = num5)
  btn5.grid(row=5,column =1,sticky =W,padx =1)
  btn5.bind("<Enter>",come)
  btn5.bind("<Leave>",go)
  btn6 = Button(root,text =6,width =10,command = num6)
  btn6.grid(row=5,column =2,sticky =W,padx =1)
  btn6.bind("<Enter>",come)
  btn6.bind("<Leave>",go)
  times = Button(root,text ="乘法 ×",width =10,command = times_num)
  times.grid(row=5,column =3,sticky =W,padx =1)
  times.bind("<Enter>",come)
  times.bind("<Leave>",go)
  reciprocal = Button(root,text ="倒数 1/x",width =10,command =Reci_num)
  reciprocal.grid(row=5,column =4,sticky =W,padx =1)
  reciprocal.bind("<Enter>",come)
  reciprocal.bind("<Leave>",go)

  btn1 = Button(root,text =1,width =10,command = num1)
  btn1.grid(row=6,column =0,sticky =W,padx =1)
  btn1.bind("<Enter>",come)
  btn1.bind("<Leave>",go)
  btn2 = Button(root,text =2,width =10,command = num2)
  btn2.grid(row=6,column =1,sticky =W,padx =1)
  btn2.bind("<Enter>",come)
  btn2.bind("<Leave>",go)
  btn3 = Button(root,text =3,width =10,command = num3)
  btn3.grid(row=6,column =2,sticky =W,padx =1)
  btn3.bind("<Enter>",come)
  btn3.bind("<Leave>",go)
  minus = Button(root,text ="减 - ",width =10,command =minus_num )
  minus.grid(row=6,column =3,sticky =W,padx =1)
  minus.bind("<Enter>",come)
  minus.bind("<Leave>",go)
  equal = Button(root,text ="=",width =10,height =3,command = equal_it)
  equal.grid(row=6,column =4,sticky =W,padx =1,rowspan =2)
  equal.bind("<Enter>",come)
  equal.bind("<Leave>",go)

  btn0 = Button(root,text =0,width =22,height =1,command = num0)
  btn0.grid(row=7,column =0,sticky =W,padx =1,columnspan =2)
  btn0.bind("<Enter>",come)
  btn0.bind("<Leave>",go)
  dot = Button(root,text =".",width =7,font =("Times","14"),height =1,command =dot_it)
  dot.grid(row=7,column =2,sticky =W,padx =1)
  dot.bind("<Enter>",come)
  dot.bind("<Leave>",go)
  add = Button(root,text ="加 +",width =10,command = Addnum)
  add.grid(row=7,column =3,sticky =W,padx =1)
  add.bind("<Enter>",come)
  add.bind("<Leave>",go)

def sci():
  v =IntVar()
  angle = Radiobutton(root,text = "角度",variable =v,value =1,command =angle_radio)
  angle.grid(row=0,column=6)
  radium = Radiobutton(root,text = "弧度",variable =v,value =2,command =radium_radio )
  radium.grid(row=0,column=7)

  sinaa = Button(root,text = "Sin(x)",width =18,command = sin_x)
  sinaa.grid(row = 1,column =6)
  sinaa.bind("<Enter>",come)
  sinaa.bind("<Leave>",go)
  cosaa = Button(root,text = "COS(x)",width =18,command = cos_x)
  cosaa.grid(row =1,column =7)
  cosaa.bind("<Enter>",come)
  cosaa.bind("<Leave>",go)
  tanaa = Button(root,text = "tan(x)",width =18,command =tan_x)
  tanaa.grid(row = 1,column =8)
  tanaa.bind("<Enter>",come)
  tanaa.bind("<Leave>",go)
  x_square = Button(root,text = "x的平方",width =18,command = square_it)
  x_square.grid(row =2,column =6)
  x_square.bind("<Enter>",come)
  x_square.bind("<Leave>",go)
  X_Ytimes = Button(root,text = "x的Y次方",width =18,command =x_ypower)
  X_Ytimes.grid(row = 2,column =7)
  X_Ytimes.bind("<Enter>",come)
  X_Ytimes.bind("<Leave>",go)
  X_tri= Button(root,text = "x的三次方",width =18,command = tri_power)
  X_tri.grid(row = 2,column =8)
  X_tri.bind("<Enter>",come)
  X_tri.bind("<Leave>",go)

  leftbra = Button(root,text = "左括号 ( ",width =18,command = Bracket_left)
  leftbra.grid(row = 3,column =6)
  leftbra.bind("<Enter>",come)
  leftbra.bind("<Leave>",go)
  rightbra = Button(root,text = "右括号  )",width =18,command = Bracket_right)
  rightbra.grid(row =3,column =7)
  rightbra.bind("<Enter>",come)
  rightbra.bind("<Leave>",go)
  natural_logs = Button(root,text = "自然对数 In(x)",width =18,command =nature_log)
  natural_logs.grid(row = 7,column =6)
  natural_logs.bind("<Enter>",come)
  natural_logs.bind("<Leave>",go)
  square_root = Button(root,text = "x的平方根",width =18,command = sqrt_num)
  square_root.grid(row =4,column =6)
  square_root.bind("<Enter>",come)
  square_root.bind("<Leave>",go)
  X_Yroot = Button(root,text = "x的Y次方根",width =18,command = x_ypower)
  X_Yroot.grid(row = 4,column =7)
  X_Yroot.bind("<Enter>",come)
  X_Yroot.bind("<Leave>",go)
  X_tri_root = Button(root,text = "x的三次方根",width =18,command = tri_root)
  X_tri_root.grid(row = 4,column =8)
  X_tri_root.bind("<Enter>",come)
  X_tri_root.bind("<Leave>",go)

  log10aa = Button(root,text = "以10为底的对数Logx",width =18,command =deci_log)
  log10aa.grid(row = 5,column =6)
  log10aa.bind("<Enter>",come)
  log10aa.bind("<Leave>",go)
  log2aa = Button(root,text = "以2为底的对数Logx",width =18,command =bina_log)
  log2aa.grid(row = 5,column =8)
  log2aa.bind("<Enter>",come)
  log2aa.bind("<Leave>",go)
  pow10 = Button(root,text = "以x为底,y为真数的logx",width =18,command =y_based_on_x_log)
  pow10.grid(row =5,column =7)
  pow10.bind("<Enter>",come)
  pow10.bind("<Leave>",go)
  radio = Button(root,text = "圆周率 π",width =18,command =circle_ratio)
  radio.grid(row = 7,column =7)
  radio.bind("<Enter>",come)
  radio.bind("<Leave>",go)
  natur_con = Button(root,text = "自然常数e",width =18,command =natur_const)
  natur_con.grid(row = 7,column =8)
  natur_con.bind("<Enter>",come)
  natur_con.bind("<Leave>",go)

  antisin = Button(root,text = "反三角正弦sin(-1)x",width =18,height =1,command =anti_sin)
  antisin.grid(row = 6,column =6)
  antisin.bind("<Enter>",come)
  antisin.bind("<Leave>",go)
  anticos = Button(root,text = "反三角余弦cos(-1)x",width =18,height =1,command =anti_cos)
  anticos.grid(row =6,column =7)
  anticos.bind("<Enter>",come)
  anticos.bind("<Leave>",go)
  antitan = Button(root,text = "反三角正切tan(-1)x",width =18,height =1,command = anti_tan)
  antitan.grid(row = 6,column =8)
  antitan.bind("<Enter>",come)
  antitan.bind("<Leave>",go)

###################
if __name__ == "__main__":
  ################################菜单设计
  standard_it =True
  sci_it = False
  static_it = False
  code_it = False
  memorylist = []
  m_plus = False
  m_minus = False
  angle_is = False
  radium_is = False
  x =0
  list_power = []
  list_log =[]
  xypower = False
  xylog = False
  text = Text(root,height =1,font = ("Times","20"),width =31,fg = "#%02x%02x%02x" % (46,150,67),bd =0)
  text.grid(row = 0,column =0,columnspan =6)
  text_alert = Text(root,height=1,width =31,fg = "red",font = ("Times","20"),bd = 0)
  text_alert.grid(row =1,column =0,columnspan =6)

  menubar = Menu(root)
  mode_menu = Menu(menubar,tearoff= 0)
  v_mode = IntVar()
  mode_menu.add_radiobutton(label = "标准型",variable = v_mode,value =0,command =standard)
  mode_menu.add_radiobutton(label = "科学型",variable = v_mode,value =1,command = sci)
  mode_menu.add_radiobutton(label = "程序员型",variable =v_mode,value =2)
  mode_menu.add_radiobutton(label = "统计型",variable = v_mode,value =3)

  mode_menu.insert_separator(7)
  v_his_math = IntVar()
  mode_menu.add_radiobutton(label = "历史记录",variable = v_his_math,value =0)
  mode_menu.add_radiobutton(label = "数字分组",variable = v_his_math,value =1)
  menubar.add_cascade(label = "查看",menu = mode_menu)

  mode_menu.insert_separator(11)
  v_transform = IntVar()
  mode_menu.add_radiobutton(label = "单位转换",variable =v_transform,value =1)

  edit = Menu(menubar)
  edit.add_command(label = "复制")
  edit.add_command(label = "黏贴")
  menubar.add_cascade(label = "编辑",menu = edit)

  helpm = Menu(menubar)
  helpm.add_command(label = "使用说明")
  helpm.add_command(label = "版本为1.0")
  menubar.add_cascade(label = "帮助",menu = helpm)
  root.config(menu = menubar)#有这句菜单栏才能正常工作
#########################################窗体设计

  standard()

  sci()
  root.mainloop()

以上就是本文的全部内容,希望对大家学习python程序设计有所帮助。

时间: 2016-06-14

Python只用40行代码编写的计算器实例

本文实例讲述了Python只用40行代码编写的计算器.分享给大家供大家参考,具体如下: 效果图: 代码: from tkinter import * reset=True def buttonCallBack(event): global label global reset num=event.widget['text'] if num=='C': label['text']="0" return if num in "=": label['text']=str(

关于python pyqt5安装失败问题的解决方法

前言 最近在工作中遇到一个问题,python pyqt5在安装的时候居然提示失败了,无奈只能找解决的办法,发现网上有同样遇到这个问题的同学,所以就总结了解决的方法分享出来,下面话不多说了,来一起看看详细的介绍: 发现问题 以前装命令都是pip一条命令搞定,会自动安装依赖的库,但在安装pyqt5时却遇到了问题 在下载完pyqt5时,会提示找不到合适的SIP版本 Could not find a version that satisfies the requirement sip>=4.19 (fr

python 简易计算器程序,代码就几行

代码: 复制代码 代码如下: import os while True: dynamic = input('输入计算表达式:') if dynamic != 'cls': try: result = eval(dynamic) print('计算结果:'+str(result)) except: print('计算表达式输入有误!') else: command = 'cls' os.system(command)

Python PyQt5实现的简易计算器功能示例

本文实例讲述了Python PyQt5实现的简易计算器功能.分享给大家供大家参考,具体如下: 这里剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30)) 3.取事件的的发送者(此例为各个按钮)的文本: self.sender().text() [效果图] [源代码] import sys from PyQt

Python设计实现的计算器功能完整实例

本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 ))- (-4*3)/(16-3*2)) 我的处理计算基本思路是: 解题思路是,需要优先处理内层括号运算--外层括号运算--先乘除后加减的原则: 1.正则处理用户输入的字符串,然后对其进行判断,判断计算公式是否有括号,有就先将计算公式进

python3.5 + PyQt5 +Eric6 实现的一个计算器代码

目前可以实现简单的计算.计算前请重置,设计的时候默认数字是0,学了半天就做出来个这么个结果,bug不少. python3.5 + PyQt5 +Eric6 在windows7 32位系统可以完美运行 计算器,简单学了半天就画个图实现的存在bug,部分按钮还未实现,后续优化. 代码结构如图: jisuan.py import re #匹配整数或小数的乘除法,包括了开头存在减号的情况 mul_div=re.compile("(-?\d+)(\.\d+)?(\*|/)(-?\d+)(\.\d+)?&q

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

本文实例讲述了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"] =

Python实现简单的四则运算计算器

一.算法 1.算法的主要思想就是将一个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式的结果. 2.关于如何讲普通的表达式转换成后缀表达式,以及如何处理后缀表达式并计算出结果的具体算法描述不在此叙述了,书上有详细的说明. 二.简易计算器 使用说明 使用该计算器类的简单示例如下: # usage c = Calculator() print('result: {:f}'.formart(c

python3+PyQt5实现使用剪贴板做复制与粘帖示例

本文是对<Python Qt GUI快速编程>的第10章的例子剪贴板用Python3+PyQt5进行改写,分别对文本,图片和html文本的复制与粘帖,三种做法大同小异. #!/usr/bin/env python3 import os import sys from PyQt5.QtCore import (QMimeData, Qt) from PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel, QPushB

Python 正则表达式实现计算器功能

需求: 用户输入运算表达式,终端显示计算结果 代码: # !/usr/bin/env/ python3 # -*- coding: utf-8 -*- """用户输入计算表达式,显示计算结果""" __author__ = 'Jack' import re bracket = re.compile(r'\([^()]+\)') # 寻找最内层括号规则 mul = re.compile(r'(\d+\.?\d*\*-\d+\.?\d*)|(\d+\

基于python的Tkinter实现一个简易计算器

本文实例介绍了基于python的Tkinter实现简易计算器的详细代码,分享给大家供大家参考,具体内容如下 第一种:使用python 的 Tkinter实现一个简易计算器 #coding:utf-8 from Tkinter import * import time root = Tk() def cacl(input_str): if "x" in input_str: ret = input_str.split("x") return int(ret[0]) *

python用tkinter实现一个简易能进行随机点名的界面

今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = random.randrange(0,29) with open('roll_call.txt', encoding='utf-8') as file_obj: contents = file_obj.read() stuff = contents.split(' ') s = stuff[i] s

js实现一个简易计算器

本文实例为大家分享了JS实现简易计算器的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <title>14th_test</title> <meta charset="gb2312"> </head> <body> <h1>这是一个标题</h1> <p>以下是一个简易计算器</p> <tab

基于python的Tkinter编写登陆注册界面

tkinter创建登陆注册界面,供大家参考,具体内容如下 import tkinter as tk from tkinter import messagebox #设置窗口居中 def window_info(): ws = window.winfo_screenwidth() hs = window.winfo_screenheight() x = (ws / 2) - 200 y = (hs / 2) - 200 print("%d,%d" % (ws, hs)) return x

Python正则表达式实现简易计算器功能示例

本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+1)*5.1-3+2**2 import re class SimpleCalc(object): # 表达式检测 def check(self,exp): # 合法字符检测 res = re.findall(r"[^\d\+\-\*/\(\)\.]", exp) print(res) i

JS制作简易计算器的实例代码

做一个简易计算器,效果图片 c表示清空,为一个空字符串 +/-表示该值为正还是负 %表示当前值/100 ←表示退格,往前删除一个值 eval 函数是能够计算出字符串表达式或者语句的结果,把结果求出来. 代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"

基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算

方法一: 结合lambda表达式.函数调用运算符.标准库函数对象.C++11标准新增的标准库function类型,编写一个简单的计算器,可实现简单的加.减.乘.除.取余二元运算.代码如下: #include "pch.h" #include <iostream> #include <functional> #include <map> #include <string> using namespace std; int add(int i

Python Tkinter实现简易计算器功能

闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次. # -*- coding: utf-8 -*- #author: Cullen #import the module from Tkinter import * import tkFont import os from functools im

Python简易计算器制作方法代码详解

主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对象 window.title('counting machine') window.geometry("350x280") window['bg']='red' 建立标签框以及标签(将运算字符串显示在上面) frame=LabelFrame(window,bg='yellow',width

利用Tkinter(python3.6)实现一个简单计算器

前言 上机实践课程开始了,嗯,老师来了之后念了下PPT,然后说:开始做吧......... 然后就开始了Python的GUI之路,以前没接触过PYthon的可视化界面(虽然这样很不明智) 但是现在做起来感觉写小工具还挺方便的,当时搜到的第一个库便是Tkinter就直接开始写了 后来发现QT很不错的样子,下个实验就用QT吧.然后关于Tkinter(python3.6) 计算器源码 ennn.....有的命名不规范....... 首先对于python中栈的实现是通过list的方式模拟 pop()出栈