python制作小程序制作流程,用python编写一个小程序

这篇文章主要介绍了python制作小程序代码宠物运输,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

 

1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5

6

7 def __init__(self):8 #创建主界面

9 self.root =tkinter.Tk()10 self.root.minsize(270, 330)11 self.root.maxsize(270, 330)12 self.root.title('小可乐的计算器')13 #定义一个变量赋值给页面label

14 self.result =tkinter.StringVar()15 #界面先显示个0

16 self.result.set(0)17 #设置一个全局变量 运算数字和符号的列表

18 self.lists =[]19 #添加一个判断是否按下运算符号的标志

20 self.isPressSign =False21 #添加一个判断是否运算完毕的标志,如果运算完毕在获取数字的方法中会清空上一轮运算结果

22 self.islistsclear =False23 #添加一个判断百分号是否使用的功能

24 self.isbaifenhao =False25 #为了下面的百分号方法使用(在百分号中为按下运算符号之后的数字)

26 self.num1 = ''

27 #定义一个全局变量(获取百分好的结果)为了在"=’运算的时候输出

28 self.result3 =None29 #获取运算符号之前的数字

30 self.num = ''

31 #获取运算符号给百分好方法使用

32 self.sign1 = ''

33 self.layout()34 self.menubar()35 #将窗口一直显示

36 self.root.mainloop()37

38 defmenubar(self):39 #创建总菜单

40 allmenu =tkinter.Menu(self.root)41 #创建子菜单

42 filemenu = tkinter.Menu(allmenu, tearoff=0)43 #在子菜单里添加文件

44 filemenu.add_command(label='标准型(T) Alt+1',command = lambda: self.func2())45 filemenu.add_command(label='科学性(S) Alt+2',command = lambda: self.func2())46 filemenu.add_command(label='程序员(p) Alt+3',command = lambda: self.func2())47 filemenu.add_command(label='统计信息(A) Alt+4',command = lambda: self.func2())48 #创建分割线

49 filemenu.add_separator()50 filemenu.add_command(label='历史记录(Y) Ctrl+H',command = lambda: self.func2())51 filemenu.add_command(label='数学分组(I)',command = lambda: self.func2())52 filemenu.add_separator()53 filemenu.add_command(label='基本(B) Ctrl+F4',command = lambda: self.func2())54 filemenu.add_command(label='单位转换(U) Ctrl+U',command = lambda: self.func2())55 filemenu.add_command(label='日期计算(D) Ctrl+E',command = lambda: self.func2())56 #在子菜单里再创建一个菜单

57 filemenunei = tkinter.Menu(filemenu, tearoff=0)58 #在子菜单里的菜单添加文件

59 filemenunei.add_command(label='抵押(M)',command = lambda: self.func2())60 filemenunei.add_command(label='汽车租赁(V)',command = lambda: self.func2())61 filemenunei.add_command(label='油耗(mpg)(F)',command = lambda: self.func2())62 filemenunei.add_command(label='油耗(1/100km)(U)',command = lambda: self.func2())63 #将子菜单里的菜单添加到子菜单里

64 filemenu.add_cascade(label='工作表(W)', menu=filemenunei)65 #添加退出功能

66 filemenu.add_command(label='退出', command=self.root.quit)67 #将子菜单添加到总菜单里

68 allmenu.add_cascade(label='查看(V)', menu=filemenu)69 #再创建一个子菜单

70 editmenu = tkinter.Menu(allmenu, tearoff=0)71 #在子菜单里添加文件

72 editmenu.add_command(label='复制(C)',command = lambda: self.func2())73 editmenu.add_command(label='粘贴(P)',command = lambda: self.func2())74 #创建分割线

75 editmenu.add_separator()76 #在子菜单里创建一个菜单

77 editmenunei = tkinter.Menu(editmenu, tearoff=0)78 #在子菜单里的菜单添加文件

79 editmenunei.add_command(label='复制历史记录(I)', stat='disable')80 editmenunei.add_command(label='编辑(E) F2', stat='disable')81 editmenunei.add_command(label='取消编辑(N) Esc', stat='disable')82 editmenunei.add_command(label='清除(L) Ctrl+Shift+D', stat='disable')83 #将子菜单里的菜单添加到子菜单

84 editmenu.add_cascade(label='历史记录(H)', menu=editmenunei)85 #将子菜单添加到总菜单

86 allmenu.add_cascade(label='编辑(E)', menu=editmenu)87 #创建第三个子菜单

88 helpmenu = tkinter.Menu(allmenu, tearoff=0)89 #在第三个子菜单里添加文件

90 helpmenu.add_command(label='查看帮助(v) F1',command = lambda: self.func2())91 #创建分割线

92 helpmenu.add_separator()93 helpmenu.add_command(label='关于计算器(A)',command = lambda: self.func2())94 #将第三个子菜单添加到总菜单中

95 allmenu.add_cascade(label='帮助(H)', menu=helpmenu)96 #将总菜单布局到主窗口

97 self.root.config(menu=allmenu)98

99 #下面代码用于页面布局

100 deflayout(self):101 #显示结果的标签

102 label = tkinter.Label(self.root, textvariable=self.result, bg='white', font=('黑体', 10), anchor='e')103 label.place(x=20, y=10, width=230, height=30)104

105 btnmc = tkinter.Button(self.root, text='MC',command = lambda: self.func2())106 btnmc.place(x=20, y=50, width=30, height=30)107

108 btnmr = tkinter.Button(self.root, text='MR',command = lambda: self.func2())109 btnmr.place(x=70, y=50, width=30, height=30)110

111 btnms = tkinter.Button(self.root, text='MS',command = lambda: self.func2())112 btnms.place(x=120, y=50, width=30, height=30)113

114 btnmjia = tkinter.Button(self.root, text='M+',command = lambda: self.func2())115 btnmjia.place(x=170, y=50, width=30, height=30)116

117 btnmjian = tkinter.Button(self.root, text='M-',command = lambda: self.func2())118 btnmjian.place(x=220, y=50, width=30, height=30)119

120 btnjiantou = tkinter.Button(self.root, text='←', command=lambda: self.jiantou())121 btnjiantou.place(x=20, y=90, width=30, height=30)122

123 btnce = tkinter.Button(self.root, text='CE', command=lambda: self.CE())124 btnce.place(x=70, y=90, width=30, height=30)125

126 btnc = tkinter.Button(self.root, text='C', command=lambda: self.clears())127 btnc.place(x=120, y=90, width=30, height=30)128

129 btnzhengfu = tkinter.Button(self.root, text='±', command=lambda: self.zhenffu())130 btnzhengfu.place(x=170, y=90, width=30, height=30)131

132 btnkaigen = tkinter.Button(self.root, text='√', command=lambda: self.sqrts())133 btnkaigen.place(x=220, y=90, width=30, height=30)134

135 btn7 = tkinter.Button(self.root, text='7', command=lambda: self.pressNum('7'))136 btn7.place(x=20, y=130, width=30, height=30)137

138 btn8 = tkinter.Button(self.root, text='8', command=lambda: self.pressNum('8'))139 btn8.place(x=70, y=130, width=30, height=30)140

141 btn9 = tkinter.Button(self.root, text='9', command=lambda: self.pressNum('9'))142 btn9.place(x=120, y=130, width=30, height=30)143

144 btnchu = tkinter.Button(self.root, text='/', command=lambda: self.pressCompute('/'))145 btnchu.place(x=170, y=130, width=30, height=30)146

147 btnbaifen = tkinter.Button(self.root, text='%', command=lambda: self.baifenhao())148 btnbaifen.place(x=220, y=130, width=30, height=30)149

150 btn4 = tkinter.Button(self.root, text='4', command=lambda: self.pressNum('4'))151 btn4.place(x=20, y=170, width=30, height=30)152

153 btn5 = tkinter.Button(self.root, text='5', command=lambda: self.pressNum('5'))154 btn5.place(x=70, y=170, width=30, height=30)155

156 btn6 = tkinter.Button(self.root, text='6', command=lambda: self.pressNum('6'))157 btn6.place(x=120, y=170, width=30, height=30)158

159 btncheng = tkinter.Button(self.root, text='*', command=lambda: self.pressCompute('*'))160 btncheng.place(x=170, y=170, width=30, height=30)161

162 btnfenshu = tkinter.Button(self.root, text='1/X', command=lambda: self.fenshu())163 btnfenshu.place(x=220, y=170, width=30, height=30)164

165 btn1 = tkinter.Button(self.root, text='1', command=lambda: self.pressNum('1'))166 btn1.place(x=20, y=210, width=30, height=30)167

168 btn2 = tkinter.Button(self.root, text='2', command=lambda: self.pressNum('2'))169 btn2.place(x=70, y=210, width=30, height=30)170

171 btn3 = tkinter.Button(self.root, text='3', command=lambda: self.pressNum('3'))172 btn3.place(x=120, y=210, width=30, height=30)173

174 btnjian = tkinter.Button(self.root, text='-', command=lambda: self.pressCompute('-'))175 btnjian.place(x=170, y=210, width=30, height=30)176

177 btndenghao = tkinter.Button(self.root, text='=', command=lambda: self.pressEqual())178 btndenghao.place(x=220, y=210, width=30, height=70)179

180 btn0 = tkinter.Button(self.root, text='0', command=lambda: self.pressNum('0'))181 btn0.place(x=20, y=250, width=80, height=30)182

183 btndian = tkinter.Button(self.root, text='.', command=lambda: self.pressNum('.'))184 btndian.place(x=120, y=250, width=30, height=30)185

186 btnjia = tkinter.Button(self.root, text='+', command=lambda: self.pressCompute('+'))187 btnjia.place(x=170, y=250, width=30, height=30)188

189 #数字函数(获取数字的函数)

190 defpressNum(self,num):191 #下面的百分好会用到

192 self.num1 =num193 #判断是否按下运算符号

194 if self.isPressSign ==False:195 pass

196 #如果按下运算符号界面归0

197 else:198 self.result.set(0)199 self.isPressSign =False200 #判断运算是否完毕

201 if self.islistsclear ==False:202 #获取面板上原有的数字

203 oldNum =self.result.get()204 #判断原有数字是否为零

205 if oldNum == '0':206 #将传入的数字显示

207 self.result.set(num)208 else:209 #原来的数字加上现在输入的数字

210 newNum = oldNum +num211 self.result.set(newNum)212 #运算完毕界面自动清空

213 else:214 #lists.clear()#如果添加这行代码就不能在上一轮运算结果的基础上运算了

215 self.result.set('0')216 self.islistsclear =False217 self.result.set(num)218

219 #运算操作(获取运算符号然后将数字和符号添加到列表中)

220 defpressCompute(self,sign):221 #获取界面上的数字

222 ifTrue:223 #获取输入运算符之前的数字

224 self.num =self.result.get()225 #将数字加入列表之中

226 self.lists.append(self.num)227 #将运算符加入到列表之中

228 self.lists.append(sign)229 #将运算符赋值给sign1(下面的百分号方法会用到)

230 self.sign1 =sign231 #将是否按下运算符号标志改成True

232 self.isPressSign =True233 #在刚开始的时候添加一个负号(-)用于正负好转换使用

234 #如果列表第一位为0

235 if self.lists[0] == '0':236 #如果列表第二位为"-’

237 if self.lists[1] == '-':238 self.result.set('-')239 #设置运算符号的状态

240 self.isPressSign =False241

242 #获取运算结果(将列表内的值转换为字符串,然后将字符串用python代码执行)

243 defpressEqual(self):244 #获取当前页面的数字

245 curnum =self.result.get()246 self.lists.append(curnum)247 #将列表中的数据转换为字符串

248 computeStr = ''.join(self.lists)249 #将字符串用python代码执行

250 endNum =eval(computeStr)251 #界面显示结果

252 self.result.set(endNum)253 #如果百分号标志触发

254 if self.isbaifenhao ==True:255 #界面显示self.result3

256 self.result.set(self.result3)257 #运算结束后将列表清空

258 self.lists.clear()259 #将运算标志改成True

260 self.islistsclear =True261

262 #清空运算

263 defclears(self):264 self.lists.clear()265 self.result.set('0')266

267 #删除上一位数字

268 defCE(self):269 self.result.set('0')270

271 #用于更改数的正负值

272 defzhenffu(self):273 self.result1 =self.result.get()274 self.result.set(float(self.result1) * (-1))275 self.islistsclear =True276

277 #用于开平方运算

278 defsqrts(self):279 result1 =self.result.get()280 self.result.set(math.sqrt(float(result1)))281 self.lists.clear()282 self.islistsclear =True283

284 #用于求x/9的值

285 deffenshu(self):286 result1 =self.result.get()287 self.result.set(1 /float(result1))288 self.islistsclear =True289

290 #用于求百分号功能的方法

291 defbaifenhao(self):292 listss =[]293 #判断如果输入一个数没输运算符号的话界面自动归零

294 if len(self.lists) < 1:295 self.result.set(0)296 else:297 #获取输入运算符号之前的数字

298 a1 =float(self.num)299 #获取运算符号

300 a2 =self.sign1301

302 #再次获取输入运算符号之前的数字

303 a3 =float(self.num)304

305 a4 = '*'

306 #算出最后一个数字的百分数

307 a6 = float(self.num1) / 100

308

309 #算出百分号的那个结果

310 resultmuqian = a3 *a6311 #总结果

312 resultbai = str(a1) + a2 + str(a3) + a4 +str(a6)313 #将字符串用python代码执行

314 self.result3 =eval(resultbai)315 #在界面上按下%符号是显示的结果

316 self.result.set(resultmuqian)317 #改变百分号的标志

318 self.isbaifenhao =True319

320 #箭头的意义删除后一位数字

321 defjiantou(self):322 result1 =self.result.get()323 result1 =list(result1)324 del result1[-1]325 result1 =str(result1)326 self.result.set(result1)327

328 deffunc2(self):329 tkinter.messagebox.askokcancel(title = '略过',message='没实现')330

331

332 myjsq = JSQ()

好了,以上便是利用Python代码实现一个计算器小程序的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/66546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二季“数字强市建设体验团”活动感悟-张继群

目录 第二季“数字强市建设体验团”活动感悟-张继群 第二季“数字强市建设体验团”活动感悟-张继群 此次参观中山东安信木业、费县智慧城市运营中心、澳柯玛以及沂南双创科技园区给我留下深刻印象&#xff0c;我深深地感受到了现代科技与生活的紧密联系。我们临沂市智慧大数据…

在x86下运行的Ubuntu系统上部署QEMU用于模拟RISC-V硬件系统

1.配置工作环境 sudo apt install gcc bison flex libncurses-dev ninja-build \pkg-config build-essential zlib1g-dev pkg-config libglib2.0-dev \binutils-dev libboost-all-dev autoconf libtool libssl-dev \libpixman-1-dev python-capstone virtualenv software-prop…

selenium获取b站视频标题

一、下载selenium 1. 下载对应版本的浏览器驱动 2. 安装selenium 3.把浏览器驱动放到使用的python内核的script目录中 二、测试效果模拟登录b站 from selenium import webdriver from selenium.webdriver.common.by import By import timebrowser webdriver.Chrome() # 打…

设计模式之Bridge模式的C++实现

目录 1、Bridge模式的提出 2、Bridge模式的定义 3、Bridge模式总结 4、需求描述 5、多继承方式实现 6、使用Bridge设计模式实现 1、Bridge模式的提出 在软件功能模块设计中&#xff0c;如果类的实现功能划分不清晰&#xff0c;使得继承得到的子类往往是随着需求的变化&am…

Win10语言设置 - 显示语言和应用语言

前言 Win10的语言设置可以设置显示语言和应用语言。其中&#xff0c;显示语言用于显示系统文字&#xff1b;应用语言用于应用程序显示文字。下文介绍如何设置。 显示语言 打开系统设置&#xff0c;选择时间和语言&#xff0c;如下图&#xff1a; 修改Windows显示语言即可更…

搭建Django+pyhon+vue自动化测试平台

Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…

linux文本三剑客---grep,sed,awk

目录 grep 什么是grep&#xff1f; grep实例演示 命令参数&#xff1a; 案例演示&#xff1a; sed 概念&#xff1a; 常用选项&#xff1a; 案例演示&#xff1a; awk 概念&#xff1a; awk常用命令选项&#xff1a; awk变量&#xff1a; 内置变量 自定义变量 a…

Java课题笔记~ JavaWeb概述/开发基础

JavaWeb概述/开发基础 1.XML基础 &#xff08;1&#xff09;XML概述 &#xff08;2&#xff09;XML语法 &#xff08;3&#xff09;DTD约束 &#xff08;4&#xff09;Schema约束&#xff08;XML Schema 比 DTD 更强大&#xff09; 2.Web基础知识 Web是一个分布式的超媒…

1、如何实现两台电脑之间数据相互读写

一、确保两台电脑在同一个局域网中&#xff0c;可以使用网线【动态配置】进行两台电脑互连。 二、静态配置: 将IP地址和网关设为192.168.0.1&#xff0c;目的是让这台电脑做另一台电脑的网关&#xff0c;子网掩码一点击会自动添加。第二台电脑同样打开设置&#xff0c;此处IP地…

MySQL之深入InnoDB存储引擎——Undo页

文章目录 一、UNDO日志格式1、INSERT操作对应的UNDO日志2、DELETE操作对应的undo日志3、UPDATE操作对应的undo日志1&#xff09;不更新主键2&#xff09;更新主键的操作 3、增删改操作对二级索引的影响 二、UNDO页三、UNDO页面链表四、undo日志具体写入过程五、回滚段1、回滚段…

初中信息技术考试编程题,初中信息技术python教案

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;初中信息技术python编程题库 网盘&#xff0c;初中信息技术python编程教学&#xff0c;今天让我们一起来看看吧&#xff01; ID:12450455 资源大小&#xff1a;934KB 资料简介: 2019-2020学年初中信息技术【轻松备课】P…

阔别三年,领先回归!别克LPGA锦标赛申城十月再启高球盛会

2023年8月4日——2023年金秋十月&#xff0c;阔别中国赛场已久的别克LPGA锦标赛将强势归来&#xff0c;于10月12日至15日在上海旗忠花园高尔夫俱乐部再次拉开帷幕。作为三年来首个回归、同时也是今年国内唯一开赛的国际顶级高尔夫职业赛事&#xff0c;别克LPGA锦标赛将吸引全世…

vscode 设置滑条颜色

1. 默认的滑条是灰黑色的&#xff0c;很难看的清 2. 左下角&#xff0c;打开VS Code 设置功能 3. 输入命令 workbench color&#xff0c;回车 4. 找到工作台&#xff1a;自定义颜色设置&#xff0c;打开设置文件 setting.json 5. 打开配置文件 6. 添加颜色配置 "workben…

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底&#xff0c;ChatGPT火遍全球&#xff0c;全世界都见识了大语言模型的强大力量。人们对大模型不再陌生&#xff0c;开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等&#xff0c;而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2)&#xff0c;这是一个…

JSON.stringify循环引用问题

前端使用到对象的深度复制通常会简单的使用JSON.parse(JSON.stringify(obj))实现 &#xff08;浅表复制会用Array.from、Object.assign、Object.create静态方法实现&#xff09;&#xff0c;但在对象存在循环引用的情况下&#xff08;比如&#xff1a;树结构中子对象存在parent…

API接口:企业信息核验

企业信息核验是现代企业管理中必不可少的一项业务&#xff0c;它可以帮助企业做出正确的决策。在这篇文章里&#xff0c;我们将会介绍如何使用API接口来对企业信息进行核验&#xff0c;并实现快捷、准确的查询。 一、API接口 在这里我们使用的是挖数据提供的企业信息核验API接…

sk_buff操作函数学习

一. 前言 内核提供了大量实用的操作sk_buff的函数&#xff0c;在开发网络设备驱动程序和修改网络协议栈代码时需要用到。这些函数从功能上可以分为三类&#xff1a;创建&#xff0c;释放和复制socket buffer&#xff1b;操作sk_buff结构中的参数和指针&#xff1b;管理socket b…

Flink作业调度的9种状态

1.什么是作业调度 Flink 通过 Task Slots 来定义执行资源。每个 TaskManager 有一到多个 task slot&#xff0c;每个 task slot 可以运行一条由多个并行 task 组成的流水线。 这样一条流水线由多个连续的 task 组成&#xff0c;比如并行度为 n 的 MapFunction 和 并行度为 n 的…

【Shell】基础语法(三)

文章目录 一、Shell基础语法1. 位置参数和特殊变量2. 输入输出3. 管道4. 文件重定向5. 函数6. 脚本调试方法 二、Shell高级和正则表达式1. sort命令2. uniq命令3. wc命令4. grep命令5. find命令6. xargs7. sed命令8. crontab 一、Shell基础语法 1. 位置参数和特殊变量 $0 …

宝塔面板点击SSL闪退打不开怎么解决?

宝塔Linux面板点击SSL证书闪退如何解决&#xff1f;旧版本的宝塔Linux面板确实存在这种情况&#xff0c;如何解决&#xff1f;升级你的宝塔Linux面板即可。新手站长分享宝塔面板SSL闪退的解决方法&#xff1a; 宝塔面板点击SSL证书闪退解决方法 问题&#xff1a;宝塔Linux面板…
最新文章