怎么用python制作简单计算器功能
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,今天小编给大家分享一下怎么用python制作简单计算器功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2024年11月30日怎么用python制作简单计算器功能
今天小编给大家分享一下怎么用python制作简单计算器功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
效果如图:
主要思路:
用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算字符串的值。
代码:
from tkinter import * 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] #小数点使用情况def clickNum(num): #按下数字 isNum.append(True) point.append(point[-1]) #按下数字,小数点的标志不变 process_list.append(num) s_process = "".join(process_list) str_process.set(s_process) def clickOper(sign):#按下运算符 global isNum,point if isNum[-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) def clickEqual():#按下等于 global s_result s_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) def clickAC():#按下清除 global s_result,isNum,point s_result = "0" isNum = [False] #状态回到初始时候 point = [True] process_list.clear() str_result.set(s_result) str_process.set("")def clickBack(): #按下退格键 global point, isNum if len(process_list) > 0: isNum.pop(-1) #删除最后一位的状态 point.pop(-1) process_list.pop() s_process = "".join(process_list) str_process.set(s_process) def clickPoint():#按下小数点 global point,isNum if isNum[-1] and point[-1]: process_list.append(".") s_process = "".join(process_list) str_process.set(s_process) isNum.append(False) point.append(False) mainWindows.mainloop()
以上就是"怎么用python制作简单计算器功能"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
运算
小数
小数点
标签
知识
篇文章
高度
计算器
宽度
按钮
数字
结果
功能
制作
内容
字体
字符
字符串
标志
状态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
松江区软件开发预算
车载网络技术的优点有哪些
网络安全直接用户画像是什么
数据库编程创建表为啥不显示
常用的服务器机柜尺寸有
web网络安全的特性
服务器外访
数据库怎么更改等级
物流网络技术有哪些
计算机网络安全基础款t恤
域名服务器 搭建
数组存入数据库
保密和网络安全自检
美国农业部食物数据库官网
数据库最小关系判断
信息科技推动互联网金融发展
百望税控数据库文件
游戏代理服务器是什么通信模式
爱克斯巨幕服务器
神奇的网络技术作文
方德服务器MAC地址
服务器硬盘坏了会影响系统么
数字科技互联网网站
美国互联网的科技公司
上海网络安全空中课堂
网络安全典型个人
互联网科技兴国
市南区手机软件开发公司
php软件开发费用
阿里的网络安全主任