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代码实现一个计算器小程序的过程。

相关推荐
小发猫1 年前
excel数据重复率怎么计算【保姆教程】
小发猫
小发猫1 年前
火车头采集器AI伪原创【php源码】
小发猫
小发猫1 年前
神码ai火车头伪原创插件怎么用【php源码】
小发猫
小发猫1 年前
python编写小程序有界面,python编写小程序的运行
小发猫
小发猫1 年前
python绿色版运行程序,python 绿色版免安装
小发猫
小发猫1 年前
python和c语言哪个好上手,c语言和python语言哪个难
小发猫
小发猫1 年前
神码ai火车头标题伪原创【php源码】
小发猫
小发猫1 年前
手机python编程软件怎么用,手机python编程软件下载
小发猫
小发猫1 年前
如何用python画一朵花,用python画彩色六边形
小发猫