怎么用python制作简单计算器功能(python,开发技术)

时间:2024-05-04 06:17:57 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

效果如图:

怎么用python制作简单计算器功能

主要思路:

用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算字符串的值。

代码:

fromtkinterimport*W=280#窗口宽度H=460#窗口高度process_H=110#显示运算过程的标签高度result_H=50#显示运算结果的标签高度msFont='微软雅黑'#字体fontSize=20#字体大小btnBoderWidth=0.5#边框宽度btnColor='#4F4F4F'#按钮颜色btnWidth=70#按钮宽度btnHeight=60#按钮高度mainWindows=Tk()mainWindows.title('计算器')mainWindows.minsize(W,H)str_process=StringVar()str_process.set("")str_result=StringVar()str_result.set("0")process=Label(mainWindows,font=(msFont,fontSize),bg='orange',anchor='se',wraplength='280',textvariable=str_process)process.place(width=W,height=process_H)#显示运算过程的标签result=Label(mainWindows,font=(msFont,fontSize+10),bg='orange',anchor='se',textvariable=str_result)result.place(y=process_H,width=W,height=result_H)#显示运算结果的标签button_AC=Button(mainWindows,font=(msFont,fontSize),text='AC',fg='orange',bd=btnBoderWidth,command=lambda:clickAC())button_AC.place(x=0,y=process_H+result_H,width=btnWidth,height=btnHeight)button_back=Button(mainWindows,font=(msFont,fontSize),text='←',fg=btnColor,bd=btnBoderWidth,command=lambda:clickBack())button_back.place(x=btnWidth,y=process_H+result_H,width=btnWidth,height=btnHeight)button_div=Button(mainWindows,font=(msFont,fontSize),text='÷',fg=btnColor,bd=btnBoderWidth,command=lambda:clickOper('/'))button_div.place(x=btnWidth*2,y=process_H+result_H,width=btnWidth,height=btnHeight)button_mul=Button(mainWindows,font=(msFont,fontSize),text='×',fg=btnColor,bd=btnBoderWidth,command=lambda:clickOper('*'))button_mul.place(x=btnWidth*3,y=process_H+result_H,width=btnWidth,height=btnHeight)button_7=Button(mainWindows,font=(msFont,fontSize),text='7',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('7'))button_7.place(x=0,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)button_8=Button(mainWindows,font=(msFont,fontSize),text='8',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('8'))button_8.place(x=btnWidth,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)button_9=Button(mainWindows,font=(msFont,fontSize),text='9',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('9'))button_9.place(x=btnWidth*2,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)button_minus=Button(mainWindows,font=(msFont,fontSize),text='-',fg=btnColor,bd=btnBoderWidth,command=lambda:clickOper('-'))button_minus.place(x=btnWidth*3,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)button_4=Button(mainWindows,font=(msFont,fontSize),text='4',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('4'))button_4.place(x=0,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)button_5=Button(mainWindows,font=(msFont,fontSize),text='5',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('5'))button_5.place(x=btnWidth,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)button_6=Button(mainWindows,font=(msFont,fontSize),text='6',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('6'))button_6.place(x=btnWidth*2,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)button_add=Button(mainWindows,font=(msFont,fontSize),text='+',fg=btnColor,bd=btnBoderWidth,command=lambda:clickOper('+'))button_add.place(x=btnWidth*3,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)button_1=Button(mainWindows,font=(msFont,fontSize),text='1',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('1'))button_1.place(x=0,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)button_2=Button(mainWindows,font=(msFont,fontSize),text='2',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('2'))button_2.place(x=btnWidth,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)button_3=Button(mainWindows,font=(msFont,fontSize),text='3',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('3'))button_3.place(x=btnWidth*2,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)button_equal=Button(mainWindows,font=(msFont,fontSize),text='=',bg='orange',fg=btnColor,bd=btnBoderWidth,command=lambda:clickEqual())button_equal.place(x=btnWidth*3,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight*2)button_percent=Button(mainWindows,font=(msFont,fontSize),text='%',fg=btnColor,bd=btnBoderWidth,command=lambda:clickOper("%"))button_percent.place(x=0,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)button_0=Button(mainWindows,font=(msFont,fontSize),text='0',fg=btnColor,bd=btnBoderWidth,command=lambda:clickNum('0'))button_0.place(x=btnWidth,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)button_point=Button(mainWindows,font=(msFont,fontSize),text='.',fg=btnColor,bd=btnBoderWidth,command=lambda:clickPoint())button_point.place(x=btnWidth*2,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)process_list=[]s_result=""isNum=[False]#上一位按下的是否是数字point=[True]#小数点使用情况defclickNum(num):#按下数字isNum.append(True)point.append(point[-1])#按下数字,小数点的标志不变process_list.append(num)s_process="".join(process_list)str_process.set(s_process)defclickOper(sign):#按下运算符globalisNum,pointifisNum[-1]:process_list.append(sign)isNum.append(False)point.append(True)#按下运算符,小数点标志为可以按下小数点else:process_list.pop()process_list.append(sign)s_process="".join(process_list)str_process.set(s_process)defclickEqual():#按下等于globals_results_process="".join(process_list)s_result=eval(s_process)s_result=str(s_result)[0:11]#结果只显示11位str_process.set(s_process)str_result.set(s_result)defclickAC():#按下清除globals_result,isNum,points_result="0"isNum=[False]#状态回到初始时候point=[True]process_list.clear()str_result.set(s_result)str_process.set("")defclickBack():#按下退格键globalpoint,isNumiflen(process_list)>0:isNum.pop(-1)#删除最后一位的状态point.pop(-1)process_list.pop()s_process="".join(process_list)str_process.set(s_process)defclickPoint():#按下小数点globalpoint,isNumifisNum[-1]andpoint[-1]:process_list.append(".")s_process="".join(process_list)str_process.set(s_process)isNum.append(False)point.append(False)mainWindows.mainloop()
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么用python制作简单计算器功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:resultMap中的collection标签怎么用下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18